Static 如果代码是使用单个静态库而不是多个静态库构建的,那么代码的性能会提高吗?

Static 如果代码是使用单个静态库而不是多个静态库构建的,那么代码的性能会提高吗?,static,Static,在同一个库中的所有例程中,是否有可能在代码中获得更好的性能 或者,换言之,当代码的某些部分被移动到另一个库中时,代码的性能是否会降低?问题,您的程序是只运行一次还是经常运行 如果是前者,如果我们假设共享库不在内存中,那么是的,静态二进制文件的性能也会略有提高,也只有毫秒左右 最有可能的情况是,如果您正在链接libc或msvcrt(在Windows上),它们已经存在于内存中,并且除了拥有一个巨大的二进制文件之外,您不会节省太多 让我们考虑后一种情况… 我认为性能改进不值得静态构建,并且需要一个巨大

在同一个库中的所有例程中,是否有可能在代码中获得更好的性能


或者,换言之,当代码的某些部分被移动到另一个库中时,代码的性能是否会降低?

问题,您的程序是只运行一次还是经常运行

如果是前者,如果我们假设共享库不在内存中,那么是的,静态二进制文件的性能也会略有提高,也只有毫秒左右

最有可能的情况是,如果您正在链接libc或msvcrt(在Windows上),它们已经存在于内存中,并且除了拥有一个巨大的二进制文件之外,您不会节省太多

让我们考虑后一种情况… 我认为性能改进不值得静态构建,并且需要一个巨大的二进制文件。如果您的应用程序使用公共共享库(或DLL),那么所有这些库都已加载到内存中

希望有帮助


有关其他响应,请参见此处。

取决于语言、平台和链接器/编译器,本问题中可能未指定任何链接器/编译器。平台Unix(pa_risc-hp-hpux)该程序是一个独立的exe运行程序,在一天内非常频繁地运行。我的问题是,在以下两种情况下,性能是否会有所不同:1。exe是在两个不同的库(.a)2中使用dependent.o构建的。exe是在一个库中使用依赖的.o构建的。不,绝对不是什么明显的东西。