Delphi 项目加载速度更快

Delphi 项目加载速度更快,delphi,Delphi,我正在编写自己的文本编辑器,我想知道如何使它加载得更快。Notepad.exe witch随windows一起提供,几乎可以立即加载,它是一个小型应用程序(在XP上为67.5KB),我知道我的应用程序是一个MDI项目,但它有约900KB的空间,可以在5秒内加载。我可以编写一个包含所有位图的DLL并从那里加载它们,但我不认为这是解决方案。 有人有什么想法吗 谢谢通常,重要的是感知速度,而不是实际速度。如果你能尽快启动一个启动屏幕,并在启动时继续初始化,人们会更快地看到 另一个技巧是将大部分代码放入

我正在编写自己的文本编辑器,我想知道如何使它加载得更快。Notepad.exe witch随windows一起提供,几乎可以立即加载,它是一个小型应用程序(在XP上为67.5KB),我知道我的应用程序是一个MDI项目,但它有约900KB的空间,可以在5秒内加载。我可以编写一个包含所有位图的DLL并从那里加载它们,但我不认为这是解决方案。 有人有什么想法吗


谢谢

通常,重要的是感知速度,而不是实际速度。如果你能尽快启动一个启动屏幕,并在启动时继续初始化,人们会更快地看到

另一个技巧是将大部分代码放入DLL,并在Windows启动时以特殊的不可见模式运行程序:

myprog.exe /sneaky
这可能会说服Windows将DLL保留在内存中,以便下次应用程序启动时更快

甚至可以在内存中以不可见模式运行,当用户自己运行myprog.exe时,只需让自己可见即可

再一次,对大部分功能使用延迟加载DLL(我们在UNIX下使用了这一个),以便只在需要时加载。这会将加载过程分摊到总执行时间上,而不是在启动时受到很大的影响


这些是我听说过的一些技巧,可能还有其他的。

通常,重要的是感知速度,而不是实际速度。如果你能尽快启动一个启动屏幕,并在启动时继续初始化,人们会更快地看到

另一个技巧是将大部分代码放入DLL,并在Windows启动时以特殊的不可见模式运行程序:

myprog.exe /sneaky
这可能会说服Windows将DLL保留在内存中,以便下次应用程序启动时更快

甚至可以在内存中以不可见模式运行,当用户自己运行myprog.exe时,只需让自己可见即可

再一次,对大部分功能使用延迟加载DLL(我们在UNIX下使用了这一个),以便只在需要时加载。这会将加载过程分摊到总执行时间上,而不是在启动时受到很大的影响


这些是我听说过的一些技巧,可能还有其他的。

在我的一个项目中,我通过禁用表单的自动创建,极大地减少了加载时间。只有主窗体在DPR中创建,所有其他窗体都在需要时创建。

在我的一个项目中,我通过禁用窗体的自动创建,极大地减少了加载时间。只有mainform在DPR中创建,所有其他的都会在需要时创建。

尝试省略start和initializations部分的代码,看看是否有任何改进,然后检查在这种情况下哪个部分会使应用程序加载变慢


如果你用打开文本文件来测试启动时间,试着用替换TMEMO(如果你正在使用它),它会更快地加载文本文件,甚至从记事本加载;-)

尝试省略start和initializations部分的代码,看看是否有任何改进,然后检查在这种情况下哪个部分会使应用程序加载变慢


如果你用打开文本文件来测试启动时间,试着用替换TMEMO(如果你正在使用它),它会更快地加载文本文件,甚至从记事本加载;-)

所有性能问题都可以通过查看执行的代码来解决

猜测导致性能问题的原因可能会让您长时间不停地转动轮子。当您遇到性能问题时,需要分析代码。有各种Delphi工具可以帮助您实现这一点

其中一些是:

本报告讨论了这些方案和其他方案

一旦您确定了问题区域,就有各种技术来加速代码。既然您已经确定了需要改进的领域,那么就对应用程序的启动进行概要分析

您可能会发现,您正在创建表单、资源或其他不需要在启动时创建的对象


应用程序通常有多种启动方式。由于您的应用程序是一个文本编辑器,我怀疑您可能有一个命令行,可以在其中指定要编辑的文件。分析启动应用程序的不同方式是确保真正了解性能改进的所有影响的关键。

所有性能问题都可以通过查看执行的代码来解决

猜测导致性能问题的原因可能会让您长时间不停地转动轮子。当您遇到性能问题时,需要分析代码。有各种Delphi工具可以帮助您实现这一点

其中一些是:

本报告讨论了这些方案和其他方案

一旦您确定了问题区域,就有各种技术来加速代码。既然您已经确定了需要改进的领域,那么就对应用程序的启动进行概要分析

您可能会发现,您正在创建表单、资源或其他不需要在启动时创建的对象


应用程序通常有多种启动方式。由于您的应用程序是一个文本编辑器,我怀疑您可能有一个命令行,可以在其中指定要编辑的文件。分析启动应用程序的不同方式是确保真正了解性能改进的所有影响的关键。

我注意到我的项目加载了E_SKU327.dll和E_DAUDF1.dll大约20次,这些文件属于共享打印机(Epson Stylus),因此我从表单中删除了TPageSetupDialog,它会立即加载:)

问题解决
:)

我注意到我的项目加载了大约20次E_SKU327.dll和E_DAUDF1.dll,这些文件属于