帆布与标签 - 页 9 12345678910111213141516...18 新评论 Dmitry Fedoseev 2021.03.14 05:41 #81 输出到标签的文本比输出到画布的文本快100倍,尽管画布甚至没有清空,它在把文本雕刻到文本上。 Dmitry Fedoseev 2021.03.14 05:42 #82 Alexey Viktorov:迪米特里,在评判一件事之前,你需要了解这一切的开始......如果我没记错的话,在某处写着五十行...... 这一切从哪里开始?带着对现实的突破? Mihail Matkovskij 2021.03.14 05:45 #83 Dmitry Fedoseev: 文本输出到标签的速度比文本输出到kanvas的速度快100倍,尽管kanvas甚至没有清除,它是在文本上雕刻文本。 我将很快提出测试,其中Kanvas也足够快。而且我还会更新KB中的相关源代码。这都是为了限制每单位时间的更新数量,我后来发现了这一点。见上面的帖子,那里讨论过这个问题。从这个帖子开始:https://www.mql5.com/ru/forum/364640/page6#comment_21290218。 Dmitry Fedoseev 2021.03.14 05:55 #84 Mihail Matkovskij:我将很快提出测试,其中Kanvas也足够快。而且我还会更新KB中的相关源代码。这都是为了限制每单位时间的更新数量,我后来发现了这一点。见上面的帖子,那里讨论过这个问题。从这个帖子开始:https://www.mql5.com/ru/forum/364640/page6#comment_21290218。 而且我不是在幻想,我是在衡量现实中适用的代码的性能。而且我根本不关心它是在什么地方渲染的,我在衡量程序的最终运行时间。 Dmitry Fedoseev 2021.03.14 05:59 #85 即使是纯粹的傻瓜式比较,只调用一次TextOut(),也比输出文本到标签的速度慢70倍。 Mihail Matkovskij 2021.03.14 06:03 #86 Dmitry Fedoseev:而且我不是在幻想,而是在衡量将在现实中应用的代码的性能。 Dmitry Fedoseev: 即使是纯粹的傻瓜式比较,只调用一次TextOut()也比向标签输出文本慢70倍。 如果你不愿意或不能理解,这里有一句话。 Renat Fatkhullin: Nikolai是对的--编辑标签属性与渲染标签没有关系。标签和图表上的任何其他对象一样,是在一个完全不同的线程中绘制的,并且独立于MQL5程序的操作。机器人只能要求再次强行渲染图表,但不能测量渲染时间。用对象绘制图表是完全异步的。但渲染画布很容易测量,因为它是直接在机器人的流程中完成的,然后在独立渲染图表期间,它仍然是在窗口的上下文中对准备好的位图进行本地BitBlit。这种操作是初级的,而且被显卡很好地加速了。 在文本标签中,TTF字体的SetFont/TextOut是相当昂贵的。 Dmitry Fedoseev 2021.03.14 06:04 #87 Mihail Matkovskij:如果你不想要或无法理解,你会得到一个报价。 而且我已经在这里 回答过你了 Mihail Matkovskij 2021.03.14 06:06 #88 Dmitry Fedoseev:而且我已经在这里 回答过你了 你要和MetaQuotes的主管 争论吗? Dmitry Fedoseev 2021.03.14 06:08 #89 Mihail Matkovskij:你会和MetaQuotes的主管 争论吗? 我们没有异议。 Mihail Matkovskij 2021.03.14 06:35 #90 Dmitry Fedoseev: 即使是纯粹的傻瓜式比较,只调用一次TextOut(),也比输出文本到标签的速度慢70倍。 这是因为图表的渲染是在一个单独的线程中完成的。而OBJ_BITMAP_LABEL 的像素阵列处理与使用它的应用程序在同一个线程中,同时也将像素传递给位图。因此,OBJ_BITMAP_LABEL可能会降低应用程序的速度,但如果位图的更新不是很频繁的话,不会很明显。就在我之前的测试中,OBJ_BITMAP_LABEL 也因为同样的原因造成了明显的速度下降。但如果你限制位图的更新频率,效果甚至比用标签更好。而如果你限制了位图的更新速度,它将比OBJ_BITMAP_LABEL 略快(由于在一个单独的线程中渲染)。很简单,更新物体的频率超过人眼所能感知的频率是没有意义的。因此,滞后,所有的对象在图表中的更新过于频繁时。 12345678910111213141516...18 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
迪米特里,在评判一件事之前,你需要了解这一切的开始......
这一切从哪里开始?带着对现实的突破?
文本输出到标签的速度比文本输出到kanvas的速度快100倍,尽管kanvas甚至没有清除,它是在文本上雕刻文本。
我将很快提出测试,其中Kanvas也足够快。而且我还会更新KB中的相关源代码。这都是为了限制每单位时间的更新数量,我后来发现了这一点。见上面的帖子,那里讨论过这个问题。从这个帖子开始:https://www.mql5.com/ru/forum/364640/page6#comment_21290218。
我将很快提出测试,其中Kanvas也足够快。而且我还会更新KB中的相关源代码。这都是为了限制每单位时间的更新数量,我后来发现了这一点。见上面的帖子,那里讨论过这个问题。从这个帖子开始:https://www.mql5.com/ru/forum/364640/page6#comment_21290218。
而且我不是在幻想,我是在衡量现实中适用的代码的性能。而且我根本不关心它是在什么地方渲染的,我在衡量程序的最终运行时间。
而且我不是在幻想,而是在衡量将在现实中应用的代码的性能。
即使是纯粹的傻瓜式比较,只调用一次TextOut()也比向标签输出文本慢70倍。
如果你不愿意或不能理解,这里有一句话。
Nikolai是对的--编辑标签属性与渲染标签没有关系。
标签和图表上的任何其他对象一样,是在一个完全不同的线程中绘制的,并且独立于MQL5程序的操作。机器人只能要求再次强行渲染图表,但不能测量渲染时间。用对象绘制图表是完全异步的。
但渲染画布很容易测量,因为它是直接在机器人的流程中完成的,然后在独立渲染图表期间,它仍然是在窗口的上下文中对准备好的位图进行本地BitBlit。这种操作是初级的,而且被显卡很好地加速了。
在文本标签中,TTF字体的SetFont/TextOut是相当昂贵的。如果你不想要或无法理解,你会得到一个报价。
而且我已经在这里 回答过你了
而且我已经在这里 回答过你了
你要和MetaQuotes的主管 争论吗?
你会和MetaQuotes的主管 争论吗?
我们没有异议。
即使是纯粹的傻瓜式比较,只调用一次TextOut(),也比输出文本到标签的速度慢70倍。
这是因为图表的渲染是在一个单独的线程中完成的。而OBJ_BITMAP_LABEL 的像素阵列处理与使用它的应用程序在同一个线程中,同时也将像素传递给位图。因此,OBJ_BITMAP_LABEL可能会降低应用程序的速度,但如果位图的更新不是很频繁的话,不会很明显。就在我之前的测试中,OBJ_BITMAP_LABEL 也因为同样的原因造成了明显的速度下降。但如果你限制位图的更新频率,效果甚至比用标签更好。而如果你限制了位图的更新速度,它将比OBJ_BITMAP_LABEL 略快(由于在一个单独的线程中渲染)。很简单,更新物体的频率超过人眼所能感知的频率是没有意义的。因此,滞后,所有的对象在图表中的更新过于频繁时。