视觉特效 - 页 10 1...3456789101112 新评论 Igor Makanu 2020.03.14 18:31 #91 Реter Konow: 表中的变化在哪里?它是重新绘制的吗? 是的,它一直在重绘。 总的来说,在没有暂停的情况下,脚本抛出了3个测试 2020.03.14 22:21:20.152 tst_T (EURUSD,H1) #1: loops=1000 ms=360 2020.03.14 22:21:23.558 tst_T (EURUSD,H1) #2: loops=10000 ms=3406 2020.03.14 22:21:59.366 tst_T (EURUSD,H1) #3: loops=100000 ms=35812 1000 - 100 000次循环和价值更新....令人惊奇的是,.Net+WinForm即使对于这种晦涩难懂的任务来说也是相当有成效的,即使在我的笔记本电脑上也没有任何滞后。 #import "LogToWinForm.dll" #import double price[20]; #define SpeedTest(count_x10,msg,EX) {uint mss=GetTickCount(); ulong count=(ulong)pow(10,count_x10);for(ulong ii=0;ii<count&&!_StopFlag;ii++){EX;} \ printf("%s: loops=%i ms=%u",msg,count,GetTickCount()-mss);} //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { ArrayInitialize(price, 1.0); while(!Log::InitForm()) Sleep(200); Sleep(1000); SpeedTest(3, "№ 1", sendTodl()); SpeedTest(4, "№ 2", sendTodl()); SpeedTest(5, "№ 3", sendTodl()); } //+------------------------------------------------------------------+ void sendTodl() { for(int i = 0; i < 19; i++) { price[i] = price[i + 1]; } price[19] = NormalizeDouble(price[18] + _Point, _Digits); double ask = NormalizeDouble((double)rand() * _Point, _Digits); double bid = NormalizeDouble((double)rand() * _Point, _Digits); Log::PrintToLog(ask, bid, price); }; //+------------------------------------------------------------------+ 速度数字是均匀的,事实证明,22个双倍值(双倍,双倍双倍[])投进.dll并完全更新WinForms需要0.3 ms UPD:现在你可以看到,在这种更新速度下,CPU的负载是存在的。 DirectX Preparing scalping ScalpBot Реter Konow 2020.03.14 19:09 #92 Igor Makanu: 它一直在重画。 总的来说,在没有暂停的情况下,脚本抛出了3个测试 2020.03.14 22:21:20.152 tst_T (EURUSD,H1) # 1: loops=1000 ms=360 2020.03.14 22:21:23.558 tst_T (EURUSD,H1) #2: loops=10000 ms=3406 2020.03.14 22:21:59.366 tst_T (EURUSD,H1) #3: loops=100000 ms=35812 1000 - 100 000次循环和价值更新....令人惊奇的是,.Net+WinForm即使对于这种晦涩难懂的任务来说也是相当有成效的,即使在我的笔记本电脑上也没有任何滞后。 速度数字是均匀的,事实证明,22个双倍值(双倍,双倍双倍[])投进.dll并完全更新WinForms需要0.3 ms UPD:现在你可以看到,这样的更新速度给CPU带来了负担。 我需要给微软公司写信))。 他们的表格更新负荷比我高。把每16ms的刷新。 ZS. 在sharpe上建立一个等效的表格。有意思的是,比较负载。 附加的文件: GUI_Expert.ex5 600 kb Алексей Тарабанов 2020.03.14 19:17 #93 12毫秒将是更正确的 Igor Makanu 2020.03.14 19:27 #94 Реter Konow: 我必须写信给微软公司)。 他们有比我更重的表格更新负担。将其设置为每16ms刷新一次。 ZS. 在sharpe上建立一个等效的表格。有意思的是,比较负载。 写,但尝试100万次刷新表格,当与Net交换时,它花了 2020.03.14 23:22:24.039 tst_T (EURUSD,H1) #4: loops=1000000 ms=322531 在我这里,更新不到16毫秒 - 我写的是0.3毫秒以上。 但是请注意,这是一个完全独立的窗体(窗口),它获得所有的Win事件,所以我想测试一下--我想知道.Net是否会在这样的交换中挂起,并滞后于一切。 ZS: 明天也许会在PC上检查这个脚本,那里比笔记本的处理器更强大,至少测试器(优化器)比笔记本上几乎快3倍,虽然这没有意义--运行.Net非常非常好。 Реter Konow 2020.03.14 19:30 #95 Igor Makanu:写,但尝试100万次更新表,当与Net交换时,它需要 2020.03.14 23:22:24.039 tst_T (EURUSD,H1) #4: loops=1000000 ms=322531 但请注意,这是一个完全独立的窗体(窗口),它接收所有的Win事件,一般来说,我想测试一下--有趣的是.Net是否会在这样的交换中冻结,是否一切都会滞后SZS: 明天也许会在PC上检查这个脚本,那里比笔记本的处理器更强大,至少测试器(优化器)比笔记本上快3倍,虽然没有意义--运行.Net非常非常好。 而且为什么要更新一百万次?如果以16毫秒的速度实时更新表,会更便宜。剩下的就没有必要了,因为事件模型 的速度并不快。这是关于重绘的负荷。 Igor Makanu 2020.03.14 19:33 #96 Реter Konow: 为什么要更新一百万次?对我们来说,以16ms的速度实时更新表会更便宜。剩下的就没有必要了,因为事件模型的速度并不快。我们说的是重绘负荷。 因此,有很多事情要争取。 ZS:把暂停放在16毫秒,好吧,处理器在峰值时只有1.5%的负载,这里是抓紧时间,注意笔记本处理器的情况! 我对争论不感兴趣,我只是想检查一下MQL5+.Net的能力--一切工作都非常酷!"。 Реter Konow 2020.03.14 19:42 #97 Igor Makanu: 那么就有一些东西要争取。 SZY:在16毫秒处放一个停顿,处理器在峰值时只有1.5%的负载,这里的时刻,注意是笔记本的处理器! 检查MQL5+.Net的能力是很有趣的--一切工作都非常酷!"。 因此,我们没有检查过它。也就是说,我们还没有对它们进行比较。我创建了两个类似的表格--在MCL和夏普中,看看在16毫秒时重绘它们的单元格时,它们各自给出的负载是什么。关于MKL,我提供了一个表格。现在,我们需要对夏普采取同样的措施。然后就会清楚谁在前面。 我要补充的是,sharp表应该通过dll连接到MT5,然后进行比较。 Igor Makanu 2020.03.14 19:58 #98 Реter Konow: 所以我们没有检查。就是说,我们没有比较过。我们需要创建两个类似的表格--在MKL上和在夏普上,看看在16ms的时间内重绘其单元格时,每个表格的负载是多少。关于MKL,我提供了一个表格。现在,我们需要对夏普采取同样的措施。然后就会清楚谁在前面。 我再补充一点,锐利的表格应该通过dll连接到MT5,然后进行比较。 我不买账--我知道不会有什么变化,好吧,如果你滚动50-100个值并将它们填入表格的3列中,就会增加0.1ms 你可能认为你已经打败了微软和他们的.Net )))) ZS:我很满意.Net上的代码,我花了15分钟写完,总共约50行,工作速度很快,没有发现任何滞后;) Реter Konow 2020.03.14 20:03 #99 Igor Makanu: 我不买账--我知道不会有什么变化,好吧,当你发送50-100个值并将它们填入表格的3列时,会增加0.1毫秒。 你可能认为你已经打败了微软和他们的.Net )))) SZZY:我很舒服,我花了15分钟写完了.Net代码,总共大约50行,工作速度很快,没有发现任何滞后;) 没有战斗就没有胜利......)) 我愿意打赌,很快我就会在构建GUI的速度上击败夏普的GUI设计器。通过跳跃式的发展。 此刻检查出来了。它不是为快速构建而准备的。可惜了他......)))) Igor Makanu 2020.03.14 20:23 #100 Реter Konow:我刚刚看了一下。他在速度建设方面不接地气。怜悯他......) 嗯...你是一个蹩脚的彼得--而且是一个罕见的彼得)))))。 夏普最大限度地接近C++,生产力的差异,嗯,最大5%,然后可能没有生产力的差异--在C++上写简单的任务需要很长的时间,在Net上,所有的原始任务都在一小时内完成,最多是一天;) 我正要去工作,但我已经在三次点击中增加了2个列,并从MQL5转发到.dll,现在3x50=150个双数(3个50的数组)。 衡量现在的速度--请记住,现在滚动条 需要资源--完全更新的WinForm 这里是100000次更新前的相同测试 2020.03.15 00:12:21.812 tst_T (EURUSD,H1) no1: loops=1000 ms=1610 2020.03.15 00:12:38.382 tst_T (EURUSD,H1) no.2: loops=10000 ms=16562 2020.03.15 00:15:19.642 tst_T (EURUSD,H1) #3: loops=100000 ms=161250 例如,在我的笔记本电脑上,带滚动条的窗口和153个单元格的表格中,.Net上的WinForm在1.6ms内更新。 附加的文件: MQL5.zip 209 kb 1...3456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
表中的变化在哪里?它是重新绘制的吗?
是的,它一直在重绘。
总的来说,在没有暂停的情况下,脚本抛出了3个测试
2020.03.14 22:21:20.152 tst_T (EURUSD,H1) #1: loops=1000 ms=360
2020.03.14 22:21:23.558 tst_T (EURUSD,H1) #2: loops=10000 ms=3406
2020.03.14 22:21:59.366 tst_T (EURUSD,H1) #3: loops=100000 ms=35812
1000 - 100 000次循环和价值更新....令人惊奇的是,.Net+WinForm即使对于这种晦涩难懂的任务来说也是相当有成效的,即使在我的笔记本电脑上也没有任何滞后。
速度数字是均匀的,事实证明,22个双倍值(双倍,双倍双倍[])投进.dll并完全更新WinForms需要0.3 ms
UPD:现在你可以看到,在这种更新速度下,CPU的负载是存在的。
它一直在重画。
总的来说,在没有暂停的情况下,脚本抛出了3个测试
2020.03.14 22:21:20.152 tst_T (EURUSD,H1) # 1: loops=1000 ms=360
2020.03.14 22:21:23.558 tst_T (EURUSD,H1) #2: loops=10000 ms=3406
2020.03.14 22:21:59.366 tst_T (EURUSD,H1) #3: loops=100000 ms=35812
1000 - 100 000次循环和价值更新....令人惊奇的是,.Net+WinForm即使对于这种晦涩难懂的任务来说也是相当有成效的,即使在我的笔记本电脑上也没有任何滞后。
速度数字是均匀的,事实证明,22个双倍值(双倍,双倍双倍[])投进.dll并完全更新WinForms需要0.3 ms
UPD:现在你可以看到,这样的更新速度给CPU带来了负担。
我需要给微软公司写信))。
他们的表格更新负荷比我高。把每16ms的刷新。
ZS. 在sharpe上建立一个等效的表格。有意思的是,比较负载。
我必须写信给微软公司)。
他们有比我更重的表格更新负担。将其设置为每16ms刷新一次。
ZS. 在sharpe上建立一个等效的表格。有意思的是,比较负载。
写,但尝试100万次刷新表格,当与Net交换时,它花了
2020.03.14 23:22:24.039 tst_T (EURUSD,H1) #4: loops=1000000 ms=322531
在我这里,更新不到16毫秒 - 我写的是0.3毫秒以上。
但是请注意,这是一个完全独立的窗体(窗口),它获得所有的Win事件,所以我想测试一下--我想知道.Net是否会在这样的交换中挂起,并滞后于一切。
ZS: 明天也许会在PC上检查这个脚本,那里比笔记本的处理器更强大,至少测试器(优化器)比笔记本上几乎快3倍,虽然这没有意义--运行.Net非常非常好。
写,但尝试100万次更新表,当与Net交换时,它需要
2020.03.14 23:22:24.039 tst_T (EURUSD,H1) #4: loops=1000000 ms=322531
但请注意,这是一个完全独立的窗体(窗口),它接收所有的Win事件,一般来说,我想测试一下--有趣的是.Net是否会在这样的交换中冻结,是否一切都会滞后
SZS: 明天也许会在PC上检查这个脚本,那里比笔记本的处理器更强大,至少测试器(优化器)比笔记本上快3倍,虽然没有意义--运行.Net非常非常好。
而且为什么要更新一百万次?如果以16毫秒的速度实时更新表,会更便宜。剩下的就没有必要了,因为事件模型 的速度并不快。这是关于重绘的负荷。
为什么要更新一百万次?对我们来说,以16ms的速度实时更新表会更便宜。剩下的就没有必要了,因为事件模型的速度并不快。我们说的是重绘负荷。
因此,有很多事情要争取。
ZS:把暂停放在16毫秒,好吧,处理器在峰值时只有1.5%的负载,这里是抓紧时间,注意笔记本处理器的情况!
我对争论不感兴趣,我只是想检查一下MQL5+.Net的能力--一切工作都非常酷!"。
那么就有一些东西要争取。
SZY:在16毫秒处放一个停顿,处理器在峰值时只有1.5%的负载,这里的时刻,注意是笔记本的处理器!
检查MQL5+.Net的能力是很有趣的--一切工作都非常酷!"。
因此,我们没有检查过它。也就是说,我们还没有对它们进行比较。我创建了两个类似的表格--在MCL和夏普中,看看在16毫秒时重绘它们的单元格时,它们各自给出的负载是什么。关于MKL,我提供了一个表格。现在,我们需要对夏普采取同样的措施。然后就会清楚谁在前面。
我要补充的是,sharp表应该通过dll连接到MT5,然后进行比较。
所以我们没有检查。就是说,我们没有比较过。我们需要创建两个类似的表格--在MKL上和在夏普上,看看在16ms的时间内重绘其单元格时,每个表格的负载是多少。关于MKL,我提供了一个表格。现在,我们需要对夏普采取同样的措施。然后就会清楚谁在前面。
我再补充一点,锐利的表格应该通过dll连接到MT5,然后进行比较。
我不买账--我知道不会有什么变化,好吧,如果你滚动50-100个值并将它们填入表格的3列中,就会增加0.1ms
你可能认为你已经打败了微软和他们的.Net ))))
ZS:我很满意.Net上的代码,我花了15分钟写完,总共约50行,工作速度很快,没有发现任何滞后;)
我不买账--我知道不会有什么变化,好吧,当你发送50-100个值并将它们填入表格的3列时,会增加0.1毫秒。
你可能认为你已经打败了微软和他们的.Net ))))
SZZY:我很舒服,我花了15分钟写完了.Net代码,总共大约50行,工作速度很快,没有发现任何滞后;)
没有战斗就没有胜利......))
我愿意打赌,很快我就会在构建GUI的速度上击败夏普的GUI设计器。通过跳跃式的发展。
此刻检查出来了。它不是为快速构建而准备的。可惜了他......))))
我刚刚看了一下。他在速度建设方面不接地气。怜悯他......)
嗯...你是一个蹩脚的彼得--而且是一个罕见的彼得)))))。
夏普最大限度地接近C++,生产力的差异,嗯,最大5%,然后可能没有生产力的差异--在C++上写简单的任务需要很长的时间,在Net上,所有的原始任务都在一小时内完成,最多是一天;)
我正要去工作,但我已经在三次点击中增加了2个列,并从MQL5转发到.dll,现在3x50=150个双数(3个50的数组)。
衡量现在的速度--请记住,现在滚动条 需要资源--完全更新的WinForm
这里是100000次更新前的相同测试
2020.03.15 00:12:21.812 tst_T (EURUSD,H1) no1: loops=1000 ms=1610
2020.03.15 00:12:38.382 tst_T (EURUSD,H1) no.2: loops=10000 ms=16562
2020.03.15 00:15:19.642 tst_T (EURUSD,H1) #3: loops=100000 ms=161250
例如,在我的笔记本电脑上,带滚动条的窗口和153个单元格的表格中,.Net上的WinForm在1.6ms内更新。