标准功能/方法的其他实现方式 - 页 6 12345678910111213 新评论 Alexey Navoykov 2018.06.13 21:56 #51 fxsaber:即使是类似物,在性能上也有很大的差异。能写的人或能找到的人还不到用户的一个百分比。嗯,那是因为其他的人对现有的性能相当满意)事实上,坦率地说,这些速度的提高大多只在孤立的测试测量中是可观的。 当然,我并不主张我们应该追求完美,但最好是按照优先顺序来做。 fxsaber 2018.06.13 22:05 #52 Alexey Navoykov:因为其他人对现有的性能相当满意 )毕竟,这些速度的提升大多只在孤立的测试测量中可以看到。 即使是1%的优化收益也会产生切实的效果。 我当然不反对追求完美,但建议按优先顺序来做。对于MQ来说,你不如那些由于各种原因没有转到5的MT4聪明人大军有趣。 Nikolai Semko 2018.06.14 21:03 #53 更快替代Bars和iBarShift的产品 Библиотеки: Fast iBarShift and Bars for MT5 2018.05.04www.mql5.com Fast iBarShift and Bars for MT5: Автор: Nikolai Semko... 附加的文件: iBars.mqh 14 kb Nikolai Semko 2018.06.22 07:27 #54 通过数组搜索,与iBarShift更快的对应。 Nikolai Semko 2018.08.25 21:27 #55 标准函数ceil()、floor()、round()的更快类似物 2-2.5倍的速度优势 long Ceil (double x) { return (x-(long)x>0)?(long)x+1:(long)x; } long Round(double x) { return (x>0)?(long)(x+0.5):(long)(x-0.5);} long Floor(double x) { return (x>0)?(long)x:((long)x-x>0)?(long)x-1:(long)x; } 正确性和速度测试结果。 2018.08.25 17:23:23.199 TestRound (EURUSD,M10) Время выполнения ceil = 3.745 наносекунд, Контрольная сумма = 5250492895 2018.08.25 17:23:23.200 TestRound (EURUSD,M10) Время выполнения Ceil = 1.806 наносекунд, Контрольная сумма = 5250492895 2018.08.25 17:23:23.205 TestRound (EURUSD,M10) Время выполнения floor = 4.243 наносекунд, Контрольная сумма = 5249492896 2018.08.25 17:23:23.206 TestRound (EURUSD,M10) Время выполнения Floor = 1.621 наносекунд, Контрольная сумма = 5249492896 2018.08.25 17:23:23.209 TestRound (EURUSD,M10) Время выполнения round = 2.984 наносекунд, Контрольная сумма = 5249992896 2018.08.25 17:23:23.211 TestRound (EURUSD,M10) Время выполнения Round = 1.519 наносекунд, Контрольная сумма = 5249992896 标准函数的返回类型为双倍。但我没有重复,因为我不明白为什么圆周率函数需要double这个类型。 附加的文件: TestRound.mq5 5 kb fxsaber 2018.08.25 22:19 #56 Nikolai Semko:正确性和速度测试的结果。只是不是纳米级,而是英里级。 Nikolai Semko 2018.08.25 22:27 #57 fxsaber:只是它们不是纳米级的,是英里级的。 没有纳米。1000000通过,我把它除以1000。只是它们的速度更快,因为它们是和循环通道的所有内容一起计算的。我将在3个小时内到我的电脑前,为纯粹的这些功能修正运行时间的计算。 fxsaber 2018.08.25 22:33 #58 Nikolai Semko: 没有纳米。1000000通过,我把它除以1000。 那么就是一种模棱两可的解释。决定输出周期时间,而不是每个函数调用 的平均时间。 Nikolai Semko 2018.08.25 22:39 #59 fxsaber: 那么就有了模棱两可的解释。决定输出周期时间,而不是一个函数调用 的平均时间。 是的,这个时间仍然包括做三次加法和一次检查的时间。我会解决这个问题,因为我知道怎么做。所以收益会更大。 pavlick_ 2018.08.26 00:18 #60 Nikolai Semko: 标准函数的返回类型为双倍。但我没有重复,因为我不明白为什么圆周率函数需要double这个类型。因为将双数转换为整数(这种方式)是低劣的代码。Round with friends的设计不是为了从浮动类型中获得整数类型。 12345678910111213 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
即使是类似物,在性能上也有很大的差异。能写的人或能找到的人还不到用户的一个百分比。
嗯,那是因为其他的人对现有的性能相当满意)事实上,坦率地说,这些速度的提高大多只在孤立的测试测量中是可观的。
当然,我并不主张我们应该追求完美,但最好是按照优先顺序来做。
因为其他人对现有的性能相当满意 )毕竟,这些速度的提升大多只在孤立的测试测量中可以看到。
即使是1%的优化收益也会产生切实的效果。
我当然不反对追求完美,但建议按优先顺序来做。
对于MQ来说,你不如那些由于各种原因没有转到5的MT4聪明人大军有趣。
更快替代Bars和iBarShift的产品
标准函数ceil()、floor()、round()的更快类似物
2-2.5倍的速度优势
正确性和速度测试结果。
标准函数的返回类型为双倍。但我没有重复,因为我不明白为什么圆周率函数需要double这个类型。正确性和速度测试的结果。
只是不是纳米级,而是英里级。
只是它们不是纳米级的,是英里级的。
没有纳米。1000000通过,我把它除以1000。
那么就有了模棱两可的解释。决定输出周期时间,而不是一个函数调用 的平均时间。
标准函数的返回类型为双倍。但我没有重复,因为我不明白为什么圆周率函数需要double这个类型。
因为将双数转换为整数(这种方式)是低劣的代码。Round with friends的设计不是为了从浮动类型中获得整数类型。