用 MQL 编写的用户界面图库 - 页 56 1...495051525354555657585960616263...82 新评论 Реter Konow 2024.07.28 15:22 #551 Andrey Barinov #:我只是不 使用库存画布:)。... 这是一个惊喜。:)自我发展总是很酷的。即使它并不完美。 我不介意 Ccanvas 类(甚至在构造函数文件中包含了它的功能),但我还没有使用它。关键词是 "尚未"。我对它有很大的计划。在未来。 Реter Konow 2024.07.28 15:25 #552 我将检查与图表大小相同的空白绿色画布的渲染速度,并将其发布在这里。 Nikolai Semko 2024.07.28 15:25 #553 Реter Konow #:是的,我会仔细检查一切。但这不是重点。绘图块不仅仅是绘图。它的内部还有逻辑迷宫,可以处理传入的事件。需要它们来决定画什么和不画什么。选择从哪里获取图像,在哪里以及如何叠加图像。如果只是简单的绘制 100 条线的功能,那就没什么好说的了。但这是一个庞大的机制,以确保绘制所有内容。 这一点值得考虑)。 不,如果执行得当,即使有成千上万次检查,事件模型所需的时间也不会超过一微秒(百万分之一秒)。找一个 bug。别再自卫了!没有人攻击你,他们只是想帮助你。我有明显的滞后(>300 毫秒),从 10 万个对象开始,并与价格时间挂钩。 Реter Konow 2024.07.28 15:28 #554 Nikolai Semko #: 不,如果执行得当,即使有成千上万次检查,事件模型所需的时间也不会超过一微秒(百万分之一秒)。 查找错误。 别再自卫了!没有人攻击你,他们只是想帮助你。 我有明显的滞后(>300 毫秒),从 10 万个对象开始,并与价格时间挂钩。 我不是在防卫)哈哈。只是解释一下。)) 好吧我先做一个简单的测试。我会用一种颜色填充一个全屏画布,然后测量时间。你对你的渲染功能进行测量,然后就会更清楚我的代码中是否有刹车。也许有。我不是在争论。我需要检查一下。 Nikolai Semko 2024.07.28 18:40 #555 Реter Konow #:我不是在辩解)。哈哈。只是解释一下。))好吧我先做一个简单的测试。我会用一种颜色填充一个全屏画布,然后测量时间。你对你的渲染功能进行测量,然后就会更清楚我的代码中是否有错误。也许有。我不是在争论。我需要检查一下。 我想,也许你从未使用过剖析工具。你也不会调试。 Реter Konow 2024.07.28 19:48 #556 Nikolai Semko #: 我想,也许你从来没做过剖析。你也不会调试。 不调试。因为有俄罗斯代码,我做不了。我做过剖析但那是很久以前的事了。我喜欢用老方法编码。就是这样我明天再来最近几天,我从早上 6 点工作到晚上 10 点到 11 点。断断续续的我有点累了 hini 2024.07.28 21:25 #557 速度也许可以放在后面再优化,并且优化速度不是很快可以完成的,目前还是先完善功能吧。 Реter Konow 2024.07.28 22:07 #558 hini #: 速度也许可以退居次要位置,优化速度也不是一蹴而就的事,目前最好还是先提高功能。 对于程序员来说,提高速度总是件好事。总的来说,我同意。这是合理的。在开发过程中合理安排优先级是非常重要的。尤其是在大型项目中。了解速度对用户的重要性对我来说非常重要。可以说,获得反馈是非常重要的。提速本身并不是我最初计划的一部分。我只是希望用户在查看界面时不会因为延迟而感到痛苦。:)当然,元素的功能性仍然是我的首要任务。引擎、元素、错误。这才是最主要的。 Реter Konow 2024.07.29 19:37 #559 @ 尼古拉- 塞姆科 尼古拉,现在我意外地找到了"为什么画一张 画布要花这么长时间"这个问题的答案。 窗户由两块 画布组成! 这两块画布的大小几乎相等。因此,绘画面积应该乘以 2。但这只是开始。 在窗口空间中还有大型滚动元素 (V_BOX),这些元素在绘制时也会完全填充原色。也就是说,如果 V_BOX 占据了窗口的主要部分,则绘制区域应乘以 3。但是!它有一个额外的画布。图像在画布上滚动。元素的底部只是一个滚动条。简而言之,绘图区域应该乘以四(尤其是如果滚动条很长的话)。 只有这样,才能绘制元素。 这似乎就是全部了......我们可以将窗口面积乘以 3 或 4,再加上一个点。 但事实并非如此! 元素本身也是多层的。每个元素都有一个底座。底座总是 从头开始绘制,填充原色。 然后在基底上绘制边框。接着,在已绘制的元素部分上绘制图标。最后,在所有内容之上绘制文本。 因此,用户只能在每个像素上看到最终的颜色。 但是,随着整个窗口的绘制,这个像素上的颜色会发生多次变化。 现在将其乘以 15 个窗口....很明显,代码中并没有特殊的错误--我专门测量了部分绘制块的执行速度,全屏 50 毫秒对我来说也是可行的。只是我最终得到了更多的屏幕。 我知道如何修改代码,将绘制速度提高 2 或 3 倍。 但我会在完成主要工作后再做。 感谢您坚持检查代码。您说得没错。批评是有帮助的。 此外,还要感谢@AndreyBarinov 提供 的文字提示。也许我能想出一些办法。 Nikolai Semko - BeeXXI Corporation 2024.07.15www.mql5.com Профиль трейдера 我怎样才能区分外汇图表和PRNG? 不是圣杯,只是一个普通的--Bablokos!!!。 基于宏观经济指标的市场预测 Реter Konow 2024.07.29 20:08 #560 Реter Konow #:@Nikolai Semko ......50毫秒全屏对我也有效。.... 测试结果是近似值。我测量了打开一个有三个大小几乎相等的画布(图标窗口)的窗口的速度,结果为 70 毫秒。如果将所有画布的面积相加(不含元素),那么正好相当于 17 英寸笔记本电脑屏幕的面积。这还不包括绘制在画布顶部的元素基底和图标本身的面积。所以是的,大约 50ms 的时间就能将颜色填充到一个名义上的全屏区域。我还没有精确测量过。为什么呢,因为 "大象 "就在房间的正中央?:) 1...495051525354555657585960616263...82 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我只是不 使用库存画布:)。
...
这是一个惊喜。:)自我发展总是很酷的。即使它并不完美。
我不介意 Ccanvas 类(甚至在构造函数文件中包含了它的功能),但我还没有使用它。关键词是 "尚未"。我对它有很大的计划。在未来。
是的,我会仔细检查一切。但这不是重点。绘图块不仅仅是绘图。它的内部还有逻辑迷宫,可以处理传入的事件。需要它们来决定画什么和不画什么。选择从哪里获取图像,在哪里以及如何叠加图像。如果只是简单的绘制 100 条线的功能,那就没什么好说的了。但这是一个庞大的机制,以确保绘制所有内容。
这一点值得考虑)。
不,如果执行得当,即使有成千上万次检查,事件模型所需的时间也不会超过一微秒(百万分之一秒)。
我不是在防卫)哈哈。只是解释一下。))
好吧我先做一个简单的测试。我会用一种颜色填充一个全屏画布,然后测量时间。你对你的渲染功能进行测量,然后就会更清楚我的代码中是否有刹车。也许有。我不是在争论。我需要检查一下。
我不是在辩解)。哈哈。只是解释一下。))
好吧我先做一个简单的测试。我会用一种颜色填充一个全屏画布,然后测量时间。你对你的渲染功能进行测量,然后就会更清楚我的代码中是否有错误。也许有。我不是在争论。我需要检查一下。
我想,也许你从未使用过剖析工具。你也不会调试。
我想,也许你从来没做过剖析。你也不会调试。
速度也许可以退居次要位置,优化速度也不是一蹴而就的事,目前最好还是先提高功能。
@ 尼古拉- 塞姆科
尼古拉,现在我意外地找到了"为什么画一张 画布要花这么长时间"这个问题的答案。
窗户由两块 画布组成! 这两块画布的大小几乎相等。因此,绘画面积应该乘以 2。但这只是开始。
在窗口空间中还有大型滚动元素 (V_BOX),这些元素在绘制时也会完全填充原色。也就是说,如果 V_BOX 占据了窗口的主要部分,则绘制区域应乘以 3。但是!它有一个额外的画布。图像在画布上滚动。元素的底部只是一个滚动条。简而言之,绘图区域应该乘以四(尤其是如果滚动条很长的话)。 只有这样,才能绘制元素。
这似乎就是全部了......我们可以将窗口面积乘以 3 或 4,再加上一个点。 但事实并非如此!
元素本身也是多层的。每个元素都有一个底座。底座总是 从头开始绘制,填充原色。 然后在基底上绘制边框。接着,在已绘制的元素部分上绘制图标。最后,在所有内容之上绘制文本。
因此,用户只能在每个像素上看到最终的颜色。 但是,随着整个窗口的绘制,这个像素上的颜色会发生多次变化。
现在将其乘以 15 个窗口....很明显,代码中并没有特殊的错误--我专门测量了部分绘制块的执行速度,全屏 50 毫秒对我来说也是可行的。只是我最终得到了更多的屏幕。
我知道如何修改代码,将绘制速度提高 2 或 3 倍。 但我会在完成主要工作后再做。
感谢您坚持检查代码。您说得没错。批评是有帮助的。
此外,还要感谢@AndreyBarinov 提供 的文字提示。也许我能想出一些办法。
@Nikolai Semko
......50毫秒全屏对我也有效。....
测试结果是近似值。我测量了打开一个有三个大小几乎相等的画布(图标窗口)的窗口的速度,结果为 70 毫秒。如果将所有画布的面积相加(不含元素),那么正好相当于 17 英寸笔记本电脑屏幕的面积。这还不包括绘制在画布顶部的元素基底和图标本身的面积。所以是的,大约 50ms 的时间就能将颜色填充到一个名义上的全屏区域。我还没有精确测量过。为什么呢,因为 "大象 "就在房间的正中央?:)