错误、漏洞、问题 - 页 975

 

我站在正确的立场上。位图的性能比标签 16%-25%(取决于元素的数量),但不是一个数量级,正如我之前写的。

在第一次学习这个工具时,代码中可能有错误/低效的地方。

代码见附件。

tol64

相信我,我没有一个动机来欺骗你=我自己在我的第一个实验中,我在测试器中观察到一个位图。不幸的是,我无法重现它。:(

附加的文件:
 
voix_kas:

...

tol64

相信我,我没有一个动机来欺骗你=我自己在我的第一个实验中,我在测试器中观察到一个位图。不幸的是,我无法重现它。:(

好的。让我们等待开发人员实现这一功能,然后我们将正确地测试它。)))
 

我还想提请开发者注意字体显示的差异。


左边是位图,右边是标签。虽然所有的设置都是一样的,但位图的字体呈现得稍微大胆 一些。

这个问题并不关键。但为了秩序,请注意。:)

 
voix_kas:

我还想提请开发人员注意字体显示的差异

左边是位图,右边是标签。虽然所有的设置都是一样的,但位图的字体渲染略显粗犷

这个问题并不关键。但为了秩序,有必要注意。:)

你对位图使用了什么标志来设置字体厚度
 
voix_kas:

我站在正确的立场上。位图的性能比标签 16%-25%(取决于元素的数量),但不是一个数量级的,正如我之前写的。


不。然而你的测试是不正确的。

你在每次改变后都要使用ChartRedraw。因此,事实上你正在测试10000次ChartRedraw。这是不对的。

任务是找出什么变化更快--标签或位图。而不是他们随后在图表上的产出。

下面是如果你把ChartRedraw留在一个循环内的测试结果。

位图更新时间=40980。
更新标签的时间=41777。

(即位图甚至比标签稍快)。

我想让你注意的是,在循环 的ChartRedraw的存在下,标签的数量和位图的宽度 不影响任何东西。所以,在这种情况下,ChartRedraw函数是最慢的。

---

如果你把ChartRedraw从循环中移除,你会得到完全不同的数字

位图刷新时间=5788。
标签的更新时间=234。

因此,带有标签的终端比位图快 20 倍。


当然,在这里,我们已经可以看到位图高度的依赖性,对于100个标记。

位图更新时间=51355。
更新标签的时间=1108。
相差50

这里是一个大小为250*20的位图,也就是说,不要改变标记的坐标。

我们得到

位图更新时间=25054。

与100分的差距是25倍。


所以,正如你所看到的,就使用位图的工作而言,它真的很慢。

毫不含糊地说,用数组+WinGdi TextOut+创建ResourceCreate的持续循环工作=比本地MT对象至少差一个数量级,甚至是50 倍。

这就是为什么你不应该拒绝MT对象。因为它可能会对绘制图表和柱状图非常方便。

Документация по MQL5: Операции с графиками / ChartRedraw
Документация по MQL5: Операции с графиками / ChartRedraw
  • www.mql5.com
Операции с графиками / ChartRedraw - Документация по MQL5
 
tol64:
你对位图使用了哪个标志来设置字体厚度

默认值是0,我没有明确地设置它。你可以在所附的源代码中看到它。

使用不同旗帜的额外 "游戏 "也没有导致统一性。

 
sergeev:

...

我们的目标是找出标签或位图的修改速度。而不是他们随后对图表的输出。

...

从循环中删除ChartRedraw()函数 是不正确的,因为文本标签属性修改的 "原子操作 "绝不是由终端的视频马达处理的。

只有在调用ChartRedraw()时才会绘制整个窗口,包括来自不同对象的alpha通道图像的相互重叠。

这一假设被带文本标签的脚本上的代码剖析器严格证实。

至于位图,瓶颈是TextOut()函数。

 
voix_kas:

...

至于位图,瓶颈是TextOut()函数。

这就更清楚了。))

 
tol64:

这就是让它更清晰的方法。))

我同意。:)

sergeev:

...

下面是如果你把ChartRedraw留在循环内的测试结果。

位图更新时间=40980。
刷新标签的时间=41777。

(也就是说,位图甚至比标签稍快)

奇怪的是,我的情况正好相反。

 

最好不要使用Argb_normalize,因为它给颜色正常化带来了额外的成本。最好是用纯色画简单的东西。

另外,速度也直接受到显卡的强烈影响,因为我们正在充分利用其2D功能。例如,在配有简陋显卡 的弱小笔记本电脑上,渲染 速度很慢,而且输出方式的差异很大。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5