Características del lenguaje mql5, sutilezas y técnicas - página 154

 
Roman:

Aunque está traducido en código de bytes, Java tiene su propia máquina de ejecución virtual (JVM).
Además, el lenguaje es estrictamente tipado, a diferencia de otros lenguajes con intérprete.
Lo más probable es que la tipificación estricta y la JVM sean la razón de la rápida ejecución y transmisión de instrucciones al hardware.
Los terminales de comercio estadounidenses están escritos en Java por una razón. El CME Group de Chicago ofrece oficialmente un terminal escrito en Java.
Un programador me dijo una vez que Java tiene sus raíces en las telecomunicaciones.
Y la industria de las telecomunicaciones, desde el principio, requiere velocidad en el procesamiento y la transferencia de datos.
Y Oracle tiene su propia comunidad para el desarrollo de este lenguaje.
Por lo tanto, el lenguaje está vivo y en buen estado, y está siendo perfeccionado por la comunidad de Oracle.

Por cierto, la marca Quik y el lenguaje LUA también fueron desarrollados por los estadounidenses.
Sin embargo, en la década de los 90, se vendió con éxito a la Federación Rusa.
En aquellos años, los estadounidenses ya se dieron cuenta de que la LUA no tenía ningún desarrollo futuro.
Y lo vendieron con éxito a la Federación Rusa, donde acababa de empezar a formarse un mercado de intercambio tras el colapso de la Unión Soviética.

Igor Makanu:

El modelo allí es el mismo que en .Net - el código fuente se compila en bytecode, éste será también el intérprete, y al desempaquetar el bytecode en un determinado PC ya se generará código nativo para el entorno virtual en el que se ejecutará, es decir, ya será código compilado

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

busque en google "java compiler or interpreter" para Java - habrá artículos similares

Gracias.
Básicamente soy consciente de todo eso, pero no esperaba ver una diferencia tan grande entre Java y MQL5 (tres veces más a favor de Java):

Quizás los gráficos no sean el mejor tema de comparación. Pero ahí sólo hay una matemática.

Archivos adjuntos:
gravity.zip  3 kb
 
Vict:

¿Te has preguntado alguna vez cuánto tiempo de arranque lleva? ¿Cuánta memoria se consume y cuántos hilos ejecuta la JVM para compilar bytes de código? Ejecuté un monstruo que compiló hello world sobre la marcha y terminó con ambos nativ. Excepto que el monstruo C no tiene uno. Y sobre python.


No pasa nada por comprar un cobbler numérico multinúcleo con un vagón de RAM y decir que mi java/sharp/... ...son muy geniales en esta prueba, y se mantienen tranquilos sobre la carga total. Nunca alcanzarán a C. Progreso, coge el tetris de los 80, reescríbelo en sharpe, y corre tan rápido como antes, pero con una CPU de 60 núcleos)).

ZS: como si dos hilos en Elbrus sólo participaran en la traducción de instrucciones x86. BELAZ (Bielorrusia): un paquete.

C y Java son, por una razón, dos líderes iguales en el ranking de lenguajes de programación.

Puede que tengas razón hasta cierto punto, pero parece que estás atrasado.
Hay que reconocer que yo también me he dado cuenta hace poco de lo atrasado que estaba cuando empecé a estudiar para ser programador.
Creía que sabía mucho, pero con el establecimiento de nuevas conexiones neuronales, mi autoestima cayó en picado.

 
Nikolai Semko:

Gracias.
Básicamente soy consciente de todo eso, pero no esperaba ver una diferencia tan grande entre Java y MQL5 (tres veces a favor de Java):

Puede que los gráficos no sean el mejor tema de comparación. Pero allí sólo hay una matemática.

¿Qué esperas de MQL5? No puedes obtener el contexto del dispositivo, así que dibujas usando software de emulación en gráficos.



Alexey Navoykov:
Por cierto, en cuanto a Sharp, parece que han hecho posible la compilación directa en código nativo. Todavía no lo he probado, pero debe ser genial.

Me encanta el hubr, especialmente por los comentarioshttps://habr.com/ru/company/microsoft/blog/265889/

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

 
Igor Makanu:

¿Qué esperas de MQL5? No puedes obtener el contexto del dispositivo, ¿verdad? Así que dibujas usando la emulación de software en los gráficos


No creo que este sea el caso.

Creo que el contexto está ligado cuando se ejecuta

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

C y Java son, por una buena razón, los dos líderes por igual en el ranking de lenguajes de programación.

Puede que tengas razón en algunos aspectos, pero parece que vas con retraso.
Hay que reconocer que yo también me he dado cuenta hace poco de lo atrasado que estaba cuando empecé a estudiar programación.
Creía que sabía mucho, pero con el establecimiento de nuevas conexiones neuronales, mi autoestima cayó en picado.

Tal vez. Von sharp está moviendo Microsoft, su tienda de windows (aquí viene la compilación en nativ), está de moda después de todo. Tenemos que hacer como un rebaño.

 
Igor Makanu:

El modelo allí es el mismo que en .Net - el código fuente se compila en bytecode, éste será también el intérprete, y al desempaquetar el bytecode en un determinado PC ya se generará código nativo para el entorno virtual en el que se ejecutará, es decir, ya será código compilado

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


sobre Java busque en Google "compilador o intérprete de Java" - habrá artículos similares

geez, Igor este artículo es de 2010. Han cambiado muchas cosas en 9 años.

 
Nikolai Semko:

Vaya, Igor, este artículo es de 2010. Han cambiado muchas cosas en 9 años.

Quién puede decir que las cosas cambian, ya ni siquiera se ven los compiladores Borland, y hace 10 años estaban todos sentados en ellos en la runet ))))

nunca me interesó java, tal vez en 4pd cuando tenían un teléfono en java

Pero la forma enque funcionan es que tanto .Net comoJava eran iguales y la precompilación en tiempo de ejecución los hacía portables entre plataformas.

 
Igor Makanu:

Quién dice que las cosas cambian, ya ni siquiera se ven compiladores Borland, hace 10 años todo el mundo en la red los usaba ))))

Me refiero a los principios, nunca me ha interesado Java, quizás en 4pd cuando tenían un teléfono en Java

Pero la forma enque funcionan es que tanto .Net comoJava eran iguales y la precompilación en tiempo de ejecución los hacía portables entre plataformas.

Sí, parece que conceptos como intérprete y compilador se han difuminado entre sí.
 
Nikolai Semko:

Gracias.
Soy consciente de ello, pero no esperaba ver una diferencia tan grande entre Java y MQL5 (tres veces más a favor de Java):

Puede que los gráficos no sean el mejor tema de comparación. Pero hay que hacer algunas cuentas.

un poco engañoso. En el código MQL en cada frame se llama a la función ChartChanged() que es muy cara. Sin ella, la ganancia de Java no sería de 3, sino de 2 veces.

Si el código MQL hace lo mismo (también 8 céntimos de gravedad), pero sin arrays, la velocidad en Java y MQL5 será igual.


Hace tiempo que noté que MQL5 no es amigable con el acceso a los arrays. El acceso a un elemento del array es desproporcionadamente caro. Creo que los desarrolladores tienen algunas cosas en las que trabajar.

Archivos adjuntos:
Swirl.mq5  12 kb
 

Encontré un interesante estudio de hace dos años en el que se comparaba la eficacia de diferentes idiomas

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