mql5语言的特点、微妙之处以及技巧 - 页 154

 
Roman:

虽然被翻译成字节码,但Java有自己的虚拟 执行(JVM)。
另外,该语言是严格类型化的,不像其他语言有解释器。
最有可能的是,严格的类型化和JVM是快速执行和向硬件传输指令的原因。
美国的交易终端是用Java编写的,是有原因的。芝加哥的CME集团正式提供一个用Java编写的终端。
一位程序员曾经告诉我,Java的根基在电信。
而电信业,从一开始就要求处理和传输数据的速度。
而且Oracle有自己的社区来开发这种语言。
因此,该语言是活的,并且正在被Oracle社区完善。

顺便说一下,Quik品牌和LUA语言也是由美国人开发的。
但在蓬头垢面的90年代,它被成功卖给了俄罗斯联邦。
在那些年里,美国人已经意识到LUA没有发展前途。
他们成功地把它卖给了俄罗斯联邦,那里的股票市场在联盟瓦解后刚刚开始形成。

伊戈尔-马卡努

那里的模式与.Net相同--源代码被编译成字节码,这也将是解释器,在给定的PC上解压字节码已经为将被执行的虚拟环境生成了本地代码,也就是说,它已经是编译好的代码。

https://habr.com/ru/post/107585/

在谷歌上搜索 "java编译器或解释器 "的Java - 会有类似的文章。

谢谢你。
我基本上知道这些,但我只是没想到Java和MQL5之间有这么大的差异(有利于Java的三倍)。

也许图形不是最好的比较对象。但那里只有一个数学。

附加的文件:
gravity.zip  3 kb
 
Vict:

你有没有想过它需要多少启动时间? 占用多少内存,JVM运行多少个线程来编译字节的代码?我运行了一个即时编译hello world的怪物,结果是nativ.除了C怪物没有。还有关于Python。


买一个多核的数字编译器,用一车的内存,说我的java/sharp/......在这个测试中非常冷静,对整体负荷保持沉默。他们永远不会追上C。进步,把80年代的俄罗斯方块,用sharpe重写,和以前一样快,但要用60核CPU))。

ZS:类似于Elbrus中的两个线程只参与X86指令的翻译。BELAZ(白俄罗斯):一个包裹。

C和Java是有原因的,在 编程语言排名 中是两个平等的领导者。

你可能在某种程度上是对的,但你似乎仍然落后于时代。
诚然,我也是最近才意识到,当我开始学习成为一名程序员时,我是多么的落后。
我以为我知道很多,但随着新的神经连接的建立,我的自尊心骤然下降。

 
Nikolai Semko:

谢谢你。
这些我基本上都知道,只是没想到Java和MQL5之间有这么大的差别(三次都是支持Java的)。

图形可能不是最好的比较对象。但那里只有一个数学。

你对MQL5有什么期望? 你不能得到设备的上下文,所以你用仿真软件在图表上画。



阿列克谢-纳沃伊科夫
顺便说一下,至于夏普,看起来他们使直接编译成本地代码成为可能。 我还没有试过,但应该很不错。

爱的枢纽,尤其是对评论https://habr.com/ru/company/microsoft/blog/265889/

https://docs.microsoft.com/ru-ru/dotnet/framework/net-native/

 
Igor Makanu:

你对MQL5有什么期望? 你不能得到设备的上下文,对吗? 所以你在图表上使用软件模拟 来画画


我认为情况并非如此。

我想,在执行以下内容时,上下文被绑定了

ObjectCreate(chart_id,name,OBJ_BITMAP_LABEL,subwin,0,0)
 
Nikolai Semko:

C和Java是有理由的,在 编程语言 排名中是两个平等的领导者。

你在某些方面可能是对的,但你似乎已经落后于时代。
不可否认的是,我也是最近才意识到我开始学习编程时有多么落后。
我以为我知道很多,但随着新的神经连接的建立,我的自尊心骤然下降。

也许。冯锐正在移动微软,它的windows商店(这里是编入nativ的),毕竟它是时尚的。我们需要作为一个群体来做。

 
Igor Makanu:

那里的模式与.Net相同--源代码被编译成字节码,这也将是解释器,在给定的PC上解压字节码已经为将被执行的虚拟环境生成了本地代码,也就是说,它已经是编译好的代码。

https://habr.com/ru/post/107585/


关于Java,在谷歌上搜索 "Java编译器或解释器"--会有类似的文章。

天啊,伊戈尔,这篇文章是2010年的。9年中发生了很多变化。

 
Nikolai Semko:

天啊,伊戈尔,这篇文章是2010年的。9年中发生了很多变化。

谁能说事情发生了变化,你甚至都看不到Borland编译器了,而10年前他们都在runet上运行))))。

我从来没有对java感兴趣,也许在4pd的时候,他们有一个java的手机。

它们 的工作方式是,.Net和Java是一样的,运行时的预编译使它们可以跨平台移植。

 
Igor Makanu:

谁能说事情发生了变化,你甚至都看不到Borland编译器了,10年前,runet上的每个人都在使用它们))))。

我指的是原则,我从来没有对Java感兴趣,也许在4pd上,当他们有一个Java的手机时,我对Java感兴趣。

它们 的工作方式是,.Net和Java是一样的,运行时的预编译使它们可以跨平台移植。

是的,感觉像解释器和编译器这样的概念已经扩散到了彼此之间。
 
Nikolai Semko:

谢谢你。
我知道这一点,但我只是没想到在Java和MQL5之间会有这么大的差异(有利于Java的三倍)。

图形可能不是最好的比较对象。但这涉及到一些数学问题。

有一点误导性。在MQL代码中,每一帧都调用非常昂贵的ChartChanged()函数。没有它,Java的收益就不是3,而是2倍。

如果MQL代码做同样的事情(同样是8分钱的重力),但没有数组,Java和MQL5的速度将是相等的。


我注意到很久了,MQL5对数组访问并不友好。对一个数组元素 的访问是不成比例的昂贵。我认为开发商有一些事情要做。

附加的文件:
Swirl.mq5  12 kb
 

发现两年前的一项有趣的研究,比较了不同语言的有效性

https://greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf