视觉特效 - 页 8

 
Реter Konow:

昨天我做了一个单元格独立于整个窗口画布重绘的滚轮的例子:https://www.mql5.com/ru/forum/333652/page4

它显示,如果单元格一直被重绘,并且在40帧的情况下,单独重绘的单元格可以保持20%的负载(在视频上更多,因为视频记录),始终如此。采用这种方法的正常滚揉机的动力将大致加载5-10%。

只有在无停顿的高速重绘大面积(~500*500 px)时(~40+ fps),负载才会高。任何延迟或减少重绘面积都会减少很多倍的负荷。

在你的例子中,玻璃当然是相当截断的,在深度上也是如此。这很有趣,但显然对一个堆栈的渲染必须在所有核心上用OpenCL完成,此外,因为计算被分解成独立的单元,但在这里我是一个理论家。

 
Aleksey Vyazmikin:

在你的例子中,烧杯当然是相当截断的,包括深度。这 很有趣,但显然,烧杯的绘制应该在所有的核心上用OpenCL计算,此外,由于计算被分为不同的单元,但在这里我是一个理论家。

好的,我将用更多的细胞做一个烧杯,然后再次检查。

 
Реter Konow:

好的,我会做一个有更多细胞的烧杯,然后再检查。

只是不要让它成为静态的,要让它成为动态的。

 
Rafil Nurmukhametov:

该处理器加载良好,在前一张图片中,你可以看到一个开放的位置,价格周围的框架是洋红色的,那里的位置是赤字的,在下面的图片中,位置是盈余的。

我的感觉是,这种图像的形成不应超过1-3毫秒。如果需要的时间超过这个时间,一定是某个地方出现了错误。
 
Rafil Nurmukhametov:

只是不要让它成为静态的,要让它成为动态的。

你说的 "动态 "是什么意思?这样,不是所有的单元格都在同一时间改变数值?我不明白。

 
Nikolai Semko:
我的感觉是,这样的图像不应该形成超过1-3毫秒的时间。如果需要的时间超过这个时间,那就是哪里出了问题。

现在你已经提高了完美的标准......你为什么不把它降低到6-8毫秒?

 
Реter Konow:

你说的 "动态 "是什么意思?这样,不是所有的单元格都在同一时间改变数值?我不明白。

这样,当前价格 就会在单元格中移动,而不是像mt5中那样在中间移动。

 
Rafil Nurmukhametov:

使当前价格 在单元格中移动,而不是像mt5杯中那样在中间移动。

也就是说,没有集中化。那么,对于期货工具来说,这就是你真正需要的东西。好的。(这只是一个测试负载的模拟图)。

 
Rafil Nurmukhametov:

现在你已经提高了完美的标准......你能把它降低到6-8毫秒吗?

是太多了。即使是3个也太多了。在30帧的情况下,6-8帧是20-30%的CPU时间。
在可能的情况下,你需要尽可能地使用ArrayCopy。透明度也应该只在需要时使用到最低限度。
你可以通过剖析运行它,看看最大的CPU泄漏在哪里。
彼得当然是对的,你应该在有变化的地方重画,但不是每次都重画整个画布。
一般来说,使用DX可以使你的CPU得到很大的缓解
 

好了,在编辑器里做了玻璃。花了我两个小时。这真是大惊小怪。通过添加工具,你可以将这一过程加快4倍。

测试了一下。

结果是:在每秒40帧的情况下,所有单元的卖出和买入以及一个单元的价格都在不断变化,负载量不到20%。(启用记录功能时,负荷会上升5-7%)。


我重复我的观点--在现实条件下,负荷将是5%-10%,这取决于市场活动。

附加的文件:
GUI_Expert.ex5  600 kb