用 MQL 编写的用户界面图库 - 页 57

 
我说的 50 毫秒是指超负荷和未优化的接口。3-10 毫秒是正常的

做一些剖析。你会在代码中发现很多问题。
 
Nikolai Semko #:
我说的 50 毫秒是指超负荷和未优化的接口。3-10 毫秒是正常的

做一些剖析。你会在代码中发现很多问题。
尼古拉,这些只是数字。你需要具体的数据。至少是屏幕尺寸。这样你才能进行精确计算。
 
在画布上绘图是一个数组初始化过程。要找出最大速度并不难--数组填充循环函数就会显示出来。数组大小 应与条件屏幕的像素总和一致。
 
你就像不想去土豆地的斯特里茨一样
做个侧写...
 
Nikolai Semko #:
你就像不想去土豆地的斯特里茨一样
做个侧写...
我做了我给你发个GIF
 


您需要深入研究图块内的循环。肤浅的剖析并不能提供完整的信息。但重点是什么已经很清楚了。我在这里写道

.我想我没有错。

(图块草稿,我用于测试)
 
Реter Konow #:

...

我知道如何修改代码,将渲染速度提高 2 或 3 倍。 但我会在主要工作完成后再做。

我分析了任务的复杂性和最终结果的价值。

结论是:这样做毫无意义。

用一秒半的时间创建 15 个带有复杂图形和滚动条的窗口是正常的结果。可以在打开窗口之前先绘制第一张图,这样就不会被用户看到。在视觉上,窗口会在半秒钟的停顿后立即出现。当然,如果用户希望同时打开 15 个窗口,那就不太可能了。

您不必画出窗户的背面。会有 ~20ms 的增益。这听起来并不惊人。

上周,我们实现了最主要的目标:在除第一次构建外的所有事件中使用已保存的图像。这对界面速度的提升是巨大 的。

其余的延迟都与改变焦点时重绘窗口或不必要的调用有关。这很容易解决。我不希望因为加载时间而忽视这一重大进步,因为加载时间并不那么重要。不过,我已经转移了自己的关注点。你应该有

在这里,我结束了第一次渲染速度的问题,因为它与当前的开发无关,也不重要。

下一次更新在周日。我将推出一个具有概念上完整的软件与用户程序交互机制的引擎。
 
Реter Konow #:
我分析了任务的复杂性和最终结果的价值。

结论是:这样做毫无意义。

用一秒半的时间创建 15 个带有复杂图形和滚动条的窗口是正常的结果。可以在打开窗口之前先绘制第一张图,这样就不会被用户看到。在视觉上,窗口会在半秒钟的停顿后立即出现。当然,如果用户希望同时打开 15 个窗口,那就不太可能了。

您不必画出窗户的背面。会有 ~20ms 的增益。这听起来并不惊人。

上周,我们实现了最主要的目标:在除第一次构建外的所有事件中使用已保存的图像。这对界面速度的提升是巨大 的。

其余的延迟都与改变焦点时重绘窗口或不必要的调用有关。这很容易解决。我不希望因为加载时间而忽视这一重大进步,因为加载时间并不那么重要。不过,我已经转移了自己的关注点。你应该有

在这里,我结束了第一次渲染速度的问题,因为它与当前的开发无关,也不重要。

下一次更新在周日。我将推出一个具有概念上完整的软件与用户程序交互机制的引擎。

是的,先把完整功能的软件做出来最重要。

 
hini #:

是的,首先发布完整的计划非常重要。

我会的。
 
一个功能完善的基础版引擎和生成器是一个有效且可实现的目标。它需要一个明确的计划和优先次序。反过来,这也意味着结束在计划中添加大型任务,开始解决紧急问题。

让我用建造高层建筑来打个比方。让我们想象一下,在一个项目 中,工头并不清楚需要建造多少层楼。我们假设他并不知情。但他骨子里是一个创造者--一个富有创造力的人。他不在乎。越大越好。他喜欢高大的房子和摩天大楼。在他工作的时候,建筑在继续,楼层在增加,大楼在向天空生长。但这些公寓却无法交付给住户,因为脚手架还没有拆除,居住空间还没有清理。甚至连门都没有装上。房子还没有完工。但对工头来说,这些都是小事。他在仰望天空房客们等得不耐烦了,他们需要房子。

总的来说,工头是时候 "更换固件",进行精神重组了。停止建造楼层,开始在开口处安装门。最后开始打扫卫生、粉刷墙壁、铺设镶木地板、安装吊灯 ....

让我这样说吧:暂时不铺设地板。相反,已经铺设好的地板将完工。施工计划将以尽快将房屋交付给租户为前提。

毕竟,房子是为他们建造的....。