共享DLL的影响(是否?)

共享DLL的影响(是否?),dll,Dll,我有N个相同的程序在同一时间运行 给他们每个人单独的.dll是否更好?或者这不会影响性能。(在速度方面?还是内存分配方面?) 谢谢您的意思是,磁盘上有单独的DLL文件吗?它不影响速度或内存分配。导入DLL会将DLL的内容加载到单个程序的内存空间中,因此使用同一DLL的多个程序实际上将使用它的不同“副本”。(注意引号中的“复制”:相同的物理内存可用于多个程序实例中的DLL代码。如果是这样,则对所有实例使用相同的DLL将减少总体物理内存使用,但您不能指望这一点。)取决于您的N值。最好使用组合方法。也

我有N个相同的程序在同一时间运行

给他们每个人单独的.dll是否更好?或者这不会影响性能。(在速度方面?还是内存分配方面?)


谢谢

您的意思是,磁盘上有单独的DLL文件吗?它不影响速度或内存分配。导入DLL会将DLL的内容加载到单个程序的内存空间中,因此使用同一DLL的多个程序实际上将使用它的不同“副本”。(注意引号中的“复制”:相同的物理内存可用于多个程序实例中的DLL代码。如果是这样,则对所有实例使用相同的DLL将减少总体物理内存使用,但您不能指望这一点。)

取决于您的N值。最好使用组合方法。也就是说,在没有明显延迟的情况下,同一程序访问同一dll的实例的最大数量(例如,5或10,取决于dll的使用情况)是相同的,如果有超过所述定界数的实例,最好创建dll的另一个副本,并将它们分配给新实例


同样,这取决于N值、使用dll会造成多大延迟等。不鼓励创建多个dll的原因是它会占用大量空间,而且如果N较大,它可能会过时地创建10辆校车来运送居住在10个不同地方的10名学童

根据这一点…使用相同的dll将允许更少的代码从磁盘加载到内存中。另一个好处是,如果您有一个dll而不是10个dll,并且您需要对程序进行更改,那么您可以只编辑一个dll,而不必编辑所有10个dll。