2

我在 VBNET 中开发的一些项目存在性能问题。我的项目是 DLL,它们由带有参数的 exe 调用,就像选项卡管理器一样。

问题是当我在 exe 中调用我的第一个 DLL 时,InitializeComponent 方法需要很长时间,但如果我从已经加载的 DLL 打开相同的 DLL,它会更快。它们在同一进程中,在不同的选项卡中。

例如,如果我从 exe 打开发票查询 DLL 需要 10 秒,但如果我从 exe 打开发票列表 DLL,然后单击发票调用发票查询 DLL,则只需 2 秒。但是,如果发票列表 DLL 已经是加载程序,并且我从一个新的 exe 调用发票查询 DLL,它又需要 10 秒。

我认为主要问题是我正在使用 DevExpress 和 GrapeCity(Farpoint Sheet)来创建我的表单的所有控件,并且我认为我的客户在加载它时遇到了性能问题。但是当显示第一个选项卡时,外部引用已加载,并且该进程中的新 DLL 没有问题。这是我知道的唯一解释,因为我在某些方法中添加了一个日志并且代码流是相同的,但是相同的代码第二次更快。

我想知道是否有任何方法可以在内存中维护外部引用,以便更快地加载 DLL,或者是否有任何编译参数来执行此操作,或者有什么好的做法可以使其更好。

编辑

在运行之前,我尝试将 NGen 用于我的 DLL 以及 DevExpress 和 GrapeCity DLL,但性能是相同的。我不确定是否需要对代码进行任何更改才能使其正常工作。我签出的大多数页面都说,当您使用 Ngen 安装某些东西时,它会将文件上传到内存中。它应该更快,但它没有在我的应用程序中执行。我只在 Ngen 上执行了安装,我不确定是否需要做其他事情。

提前致谢。

问候

4

0 回答 0