【发布时间】:2014-03-15 11:46:48
【问题描述】:
如果我有两个引用 GAC 中相同库的 .Net 应用程序,并且我同时启动这两个应用程序并执行使用共享库的代码(甚至一个接一个),那么该库的副本数量将是多少?有常驻记忆吗?
我问的原因是我正在尝试提高应用程序中进程的首次执行速度,从 GAC 加载大量库占用了很大一部分首次执行。我正在考虑通过以前运行一个引用和使用相同库的小应用程序来预加载这些(可能在 Windows 启动时)。
要运行的第二个应用程序是否可以访问当前驻留库的同一个副本,还是仍需要加载自己的副本?本能告诉我,只需将一份副本加载到内存中,但事情并不一定如你所料!
【问题讨论】:
-
关于“.NET冷启动性能”的文献很多,一定要google一下。与内存无关,与磁盘速度有关。
-
谢谢,我会看看,但我的目标是找到一种方法(如果可能的话)预加载程序集,这样当有问题的应用程序执行时,它不必(因为用户抱怨大约花费的时间)。
-
告诉他们更频繁地启动它。这样this feature 就会处理它。 SSD 是下一个解决方案。
-
遗憾的是,SSD 不是解决方案。我们不能仅仅因为我们的应用程序太慢(他们会觉得)就告诉我们的客户在他们所有的 PC 上安装 SSD。
标签: .net dll .net-assembly