巴解组织的间接费用 1234567 新评论 Alexey Volchanskiy 2017.07.05 15:05 与资源密集型任务相关,出现了一个问题--与传统的程序化编程相比,使用OOP的开销是多少。有人做过这样的测试吗?我对两者之间的区别感兴趣。带参数的函数调用不带参数的函数调用调用具有上述函数功能的宏函数调用--类的方法虚拟函数调用 Georgiy Merts 2017.07.05 15:58 #1 我们谈论的是什么样的开销? 如果我们谈论的是机器代码,那么据我所知,虚拟函数 是通过虚拟函数表间接地调用过程。但在正常功能的情况下,这是一个直接的调用。我认为开销非常小。程序员的开销要重要得多--代码编写和维护、错误修复...... Dmitry Fedoseev 2017.07.05 16:15 #2 没有参数的函数比有参数的函数更快。 Alexey Volchanskiy 2017.07.05 16:50 #3 Dmitry Fedoseev:没有参数的函数比有参数的函数更快。当然,我已经用汇编程序敲打了2年了 ))的确,对于嵌入式处理器来说,但C++始终是C++。即使是一个没有参数的函数也有一个序幕和尾声,这也需要时间。当然,最快的方法是使用一个设计成函数样子的宏。很遗憾,MQL中没有内联函数,但宏可以代替 Alexey Volchanskiy 2017.07.05 16:51 #4 George Merts:我们谈论的是什么样的开销? 如果我们谈论的是机器代码,那么据我所知,虚拟函数 是通过虚拟函数表间接地调用过程。而在正常功能的情况下,它是一个直接调用。我认为开销非常小。程序员的开销要重要得多--代码编写和维护、纠错......当然,我们并不关心执行时间的开销--那些额外的千字节并不重要。我们并不关心那些额外的千字节。 Dmitry Fedoseev 2017.07.05 16:52 #5 宏观当然是最快速的。 Georgiy Merts 2017.07.05 17:37 #6 Alexey Volchanskiy:最快的方法当然是设计成函数的宏。太糟糕了,MQL没有内联函数,但宏会是一个替代物Rinat说,MT有严重的内联功能,并给出了良好的结果。 Sergey Dzyublik 2017.07.05 18:11 #7 George Merts:里纳特说,MT--一个严肃的inliner工作,并给出了良好的结果。 是的,根据我的个人观察,在MT4中,inliner的工作取决于堆栈大小(为堆栈中的变量分配的内存)和变量的数量。 但在MT5中,对堆栈大小的依赖似乎被消除了,而且优化器在那里一般来说更有帮助。 Maxim Kuznetsov 2017.07.05 18:12 #8 Alexey Volchanskiy:与资源密集型任务相关,出现了一个问题--与传统的程序化编程相比,使用OOP的开销是多少。有人做过这样的测试吗?我对两者之间的区别感兴趣。带参数的函数调用不带参数的函数调用调用具有上述函数功能的宏函数调用--类的方法虚拟函数调用如果有现成的OOP库,这就减少了应用的开发时间。执行的速度可能会因为调用虚拟函数而有微小的下降。唯一的细微差别是是否有好的OOP库。"标准库 "侵犯了我的美感,让我去找DLL,悄悄地用C++写代码 Renat Fatkhullin 2017.07.05 20:57 #9 George Merts:Rinat说,在MT--一个严肃的inliner工作,并给出良好的结果。 是的,inliner是非常积极和自动的。x64代码优化器也比32位版本高出一头(这个分支已经完全停止,没有开发)。此外,x64优化器知道如何将大多数虚拟函数 解卷为直接和内联调用。毕竟,虚拟函数往往是退化的。但真正的开销是在引用操作和控制动态索引方面。他们必须一直受到控制。 Andrei01 2017.07.06 09:48 #10 Alexey Volchanskiy:与资源密集型任务相关,出现了一个问题--与传统的程序化编程相比,使用OOP的开销是多少。 当然,你必须为OOP的漂亮功能付出资源和漫长的调试时间。OOP只有作为一个方便的文本包装,或者在运行时初始化中使用的情况下才有意义。实际上,OOP 只是微软的一个营销手段,目的是增加程序员的工作时间成本,刺激他们购买更先进的设备。而且他们自己也不是傻瓜,用C语言和汇编编写所有的软件。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
与资源密集型任务相关,出现了一个问题--与传统的程序化编程相比,使用OOP的开销是多少。
有人做过这样的测试吗?
我对两者之间的区别感兴趣。