【发布时间】:2018-07-30 17:19:05
【问题描述】:
有人遇到过这个问题吗? :
它出现在 Windows 10 更新至 build 1709 之后。 经过一些系统启动时间 - 几个小时 - 位图加载,图像列表项添加变得非常缓慢。一个 256x256 的 BMP 加载时间超过 10 秒……在执行此操作时,它会 100% 占用一个 CPU 内核。 因此,可以在几秒钟内正常启动的已编译应用程序现在可以在几分钟内启动!
我经常使用休眠/恢复。 显示驱动程序已经使用了一年多,所以这不是问题。
对此有何评论?
更新: 我发现使用 Canvas.Pixels 的代码会发生这种情况,因此可以对其进行更改,但速度仍然非常慢。
更新 2: 用 Scanline 操作替换可以加快速度。最近的 Windows 补丁一定让 Canvas.Pixels 在大量使用时真的很慢。
【问题讨论】:
-
"显示驱动程序已有一年多的历史,所以这不是问题。"你现在越新越好,对吧? (特别是如果操作系统升级!)
-
没有较新的驱动可用,而且问题是最近才出现的,所以我认为这不是系统变化的原因。
-
哦,是的,问题一定出在 Delphi 而不是您的代码中……即使您没有生成 MCVE。
-
使用
TBitmap.Canvas.Pixels属性通常会很慢。对于快速像素访问,请改用TBitmap.ScanLine属性。见Reading and Setting Pixels。
标签: delphi c++builder tbitmap timagelist