gpt4 book ai didi

c++ - 冷启动优化

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:05 25 4
gpt4 key购买 nike

我尝试搜索,但到目前为止还没有成功。有谁知道应该如何进行冷启动优化的好资源?

有问题的应用程序是 C++/MFC 应用程序,使用 VS2010 编译,完整版,内置分析器可用。我试图减少所有额外的重量以获得热启动可接受的加载时间,但冷启动是 Not Acceptable 。有时接近 30 秒,而且没有什么是慢代码明智的。 CPU 负载在热启动期间达到 80%,在冷启动期间保持在 20% 以下。

我今天尝试使用延迟加载链接器设置,但我不太明白它们如何影响性能。此外,我尝试了可执行打包程序,但在 VM 上的测试似乎并没有更快。还有什么我可以尝试的吗?

最佳答案

冷启动时间长是纯粹的硬盘问题。查找您的程序需要的 DLL。除了运行碎片整理工具之外,您无法优化硬盘。将您的程序分段以使 DLL 加载与 UI 时间重叠是非常困难的。使用 COM 服务器或链接器的/DELAYLOAD 选项是显而易见的方法,但要在屏幕上显示功能性 UI 而不触及任何东西并不容易。将类分离到由工具栏或菜单选项触发的 DLL 中当然是可能的,但 MFC 并不能使空闲时间 UI 更新变得那么容易(抱歉,忘记了确切的短语)。

您并不孤单,Microsoft Office 和 Acrobat Reader 等程序也有此问题。他们用一个非常棘手的 hack 解决了这个问题,他们在运行注册表项或启动文件夹快捷方式中安装了一个“优化器”。除了接触所有 DLL 以便将它们加载到文件系统缓存中之外,它什么都不做。在用户检查她的电子邮件后给 EXE 一个热启动。我讨厌他们,并在他们再次放回去后继续删除它们。但它确实提高了用户的意见,他们会认为是电子邮件阅读器速度慢。或者当然是该死的 Windows-shoulda-gotten-a-Mac。

也就是说,30 秒是一段很长的时间。请确保这不仅仅是您的开发机器上的问题,而是通过一遍又一遍地构建二进制文件并将它们分散在整个磁盘上引起的。运行碎片整理程序。接下来,使用 SysInternals 的 ProcMon 实用程序检查它正在做什么。

关于c++ - 冷启动优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com