有很多DLL依赖性是否比尽可能静态链接更好?
谢谢
正如其他人所提到的,使用大量DLL并不是一种不好的做法。请仔细考虑每个DLL中应该放置哪些内容。我喜欢将DLL保持尽可能“小岛状”。如果这些将被分发,我喜欢有一个特定的命名约定,反映产品和/或公司名称和/或某种缩写。
只是想从其他使用许多动态加载DLL的程序中添加另一个观察结果。例如,GIMP及其插件。您加载DLL的方式将影响客户端感知的应用程序速度,如果这是其他非常好的因素之一(更新,重用等)。我相信操作系统加载DLL会有一些开销,并且您可能会遇到进程限制(如打开文件句柄)。拥有非常多的非常小的DLL可能不如“比那个小”的数量的“比那个大”的DLL所需。
拥有静态链接会使您的应用程序占用大量内存,因此从这个角度来看,拥有DLL更好,即您只加载所需内容。现在通常通过安装程序进行安装,因此拥有许多DLL并不重要。
我不认为这是一种不好的做法。看看 Office 或 Adobe 等大型应用程序。它们最终会有很多 DLL -- 因为否则它们就必须把所有东西打包到一个 100M+ 的 exe 中。
当你不绝对需要它们时,将事物分解成 DLL。
一般来说这不是坏习惯。将程序代码分割成单独的动态库更好,特别是当所提供的函数从多个可执行文件中使用时。 这并不意味着每个程序都应该将其代码分割为多个动态库;对于简单实用程序来说,这可能并不需要。