Fla*_*ick 1 .net c# vb.net dll .net-assembly
我正在构建一个WinForms应用程序.我想知道一个只有.exe文件或多个Dll之间是否有区别.实际上我有一个.exe的7Mb,我担心一些性能问题; 但我已经阅读了Framework在启动时加载所有需要的Dll,因此程序集碎片是无用的.是正确的?
但我已经阅读了Framework在启动时加载所有需要的Dll
它会在发现需要时加载它们 ; 这往往意味着许多人在创业时就已经开始了,但是没有魔法"找到我将需要的所有东西并立即加载它".特别是,当JIT在当前未加载的dll中找到类型引用时,通常会加载程序集.
但是请注意,在许多方面,单个大型装配不成问题 - JIT是每种类型; 加载时,它不会查看装配中的每个类型.同时,虽然 - 如果你有太多的 dll,装配分辨率/验证/融合会变得明显,那对于非常大的数字来说只会很重要; 少数或十几个并不重要(实际上,.NET框架本身被分成许多单独的dll).
在大多数情况下,任何启动性能主要与您的代码在启动时所做的事情有关 - 任何外部配置的处理等.1个程序集与5个(或其他)的选择很少是一个关键因素.
有关信息,快速winform测试显示任何winforms使用将涉及至少 6个dll - 最可能更多(当你添加功能等):
{your application}
mscorlib
System.Windows.Forms
System
System.Drawing
Accessibility
Run Code Online (Sandbox Code Playgroud)
通过:
using System;
using System.Windows.Forms;
public class Program {
static void Main() {
Application.EnableVisualStyles();
using (var form = new Form()) {
Application.Run(form);
}
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
Console.WriteLine(assembly.GetName().Name);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |