巴解组织的辉煌与贫穷 - 页 7 1234567 新评论 Dmitry Fedoseev 2014.07.08 03:41 #61 找到了!毕竟设法用PLO获得了更高的速度。是的!其好处是不可否认的。 Dmitry Fedoseev 2014.07.08 03:42 #62 dimeon:那我们就用汇编语言写一切吧。反正会更快。我不明白这个问题。我从来没有见过一个专家顾问或指标有1MB的代码。任何函数的调用也需要一些时间。让我们也放弃功能吧!使用OOP,对大型项目的控制就更加方便了。另外,代码的执行速度很多时候并不像对经纪人的ping时间和对经纪人订单的响应那样关键。看看HFT的算法吧。他们需要最大的速度,但你不会发现那里有任何复杂的计算。PS。你通常不需要一辆超级跑车或雪地车来从A点到B点,一辆轻便摩托车就足够了!一辆轻便摩托车就够了! 这里有一个人把代码写到文件里,并包括它而不是一个函数。 Alexey Navoykov 2014.07.08 03:58 #63 Integer:找到了!还是设法用PLO获得了更高的速度。是的!其好处是不可否认的。 那么密码是什么? Dmitry Fedoseev 2014.07.08 04:02 #64 meat: 那么,密码是什么? 用不同的参数数调用iCustom(),每个参数数有不同的情况,或者OOP变体中每个参数数有不同的类。 Renat Fatkhullin 2014.07.08 11:14 #65 在MQL编译器的新版本中,如果一个虚拟方法是一连串虚拟方法中的最后一个方法,并且没有与外部库的链接,我们已经包含了用直接调用来替换虚拟方法的优化。这种方法将简化和加快对许多与类合作的程序的虚拟调用。670建设中第一个帖子中test.mq4例子的结果。switch: 172 OOP: 312 循环必须从10,000,000增加到50,000,000,以便不在32-64毫秒的微不足道的时间测量下工作。时间以ms为单位显示,数字越小,代码越快。这是我在同一代码上使用新的编译器得到的结果。switch: 157 OOP: 93 OOP赢得了轰轰烈烈的胜利。但为什么呢?首先,虚拟方法被转化为普通方法,然后对其进行精简和优化为零。事实上,函数调用 和主体 完全消失了,只剩下一个纯循环。 mov int[i] <- int[0] $label: <- тут когда-то было тело, но оно оптимизировалось в ноль add int[i] <- int[i], int[1] jlt int[i], int[50000000] --> $label 文件附在后面,包括控制台编译器的新测试版。你可以用MetaEditor的常规670版本(编译器内置在其中)和控制台编译器来比较任何例子。这证明了什么。正在测试的是编译器优化器的质量。编写测试时其实应该充分了解一切的优化方式正如我所说的--在一个现有的例子中展示了如果你不了解代码优化的特殊性,那么就有可能被误导(OOP突然获胜)。 附加的文件: test.mq4 9 kb Test.ex4 7 kb test_optimized.ex4 6 kb mql_exe.zip 1117 kb 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
找到了!毕竟设法用PLO获得了更高的速度。是的!其好处是不可否认的。
那我们就用汇编语言写一切吧。反正会更快。
我不明白这个问题。我从来没有见过一个专家顾问或指标有1MB的代码。
任何函数的调用也需要一些时间。让我们也放弃功能吧!
使用OOP,对大型项目的控制就更加方便了。
另外,代码的执行速度很多时候并不像对经纪人的ping时间和对经纪人订单的响应那样关键。
看看HFT的算法吧。他们需要最大的速度,但你不会发现那里有任何复杂的计算。
PS。你通常不需要一辆超级跑车或雪地车来从A点到B点,一辆轻便摩托车就足够了!一辆轻便摩托车就够了!
找到了!还是设法用PLO获得了更高的速度。是的!其好处是不可否认的。
那么,密码是什么?
在MQL编译器的新版本中,如果一个虚拟方法是一连串虚拟方法中的最后一个方法,并且没有与外部库的链接,我们已经包含了用直接调用来替换虚拟方法的优化。
这种方法将简化和加快对许多与类合作的程序的虚拟调用。
670建设中第一个帖子中test.mq4例子的结果。
循环必须从10,000,000增加到50,000,000,以便不在32-64毫秒的微不足道的时间测量下工作。时间以ms为单位显示,数字越小,代码越快。
这是我在同一代码上使用新的编译器得到的结果。
OOP赢得了轰轰烈烈的胜利。但为什么呢?
首先,虚拟方法被转化为普通方法,然后对其进行精简和优化为零。事实上,函数调用 和主体 完全消失了,只剩下一个纯循环。
文件附在后面,包括控制台编译器的新测试版。你可以用MetaEditor的常规670版本(编译器内置在其中)和控制台编译器来比较任何例子。
这证明了什么。