Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 154

 
Roman:

Anche se tradotto in byte-code, Java ha la sua propria macchina di esecuzione virtuale (JVM).
Anche il linguaggio è strettamente tipizzato, a differenza di altri linguaggi con un interprete.
Molto probabilmente, la digitazione rigorosa e la JVM sono la ragione per l'esecuzione veloce e la trasmissione delle istruzioni all'hardware.
I terminali di trading americani sono scritti in Java per un motivo. Il CME Group di Chicago fornisce ufficialmente un terminale scritto in Java.
Un programmatore una volta mi ha detto che Java ha le sue radici nelle telecomunicazioni.
E l'industria delle telecomunicazioni, fin dall'inizio, richiede velocità nell'elaborazione e nel trasferimento dei dati.
E Oracle ha la sua comunità per lo sviluppo di questo linguaggio.
Quindi il linguaggio è vivo e vegeto, e viene sviluppato dalla comunità Oracle.

Per inciso, anche il marchio Quik e il linguaggio LUA sono stati sviluppati dagli americani.
Ma negli arruffati anni '90, è stato venduto con successo alla Federazione Russa.
In quegli anni, gli americani avevano già capito che LUA non aveva uno sviluppo futuro.
E l'hanno venduto con successo alla Federazione Russa, dove un mercato di scambio aveva appena iniziato a formarsi dopo il crollo dell'Unione Sovietica.

Igor Makanu:

Il modello è lo stesso che in .Net - il codice sorgente è compilato in bytecode, questo sarà anche l'interprete, e scompattando il bytecode su un dato PC genererà già codice nativo per l'ambiente virtuale in cui sarà eseguito, cioè sarà già codice compilato

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

cercare su Google "java compiler o interprete" per Java - ci saranno articoli simili

Grazie.
Sono fondamentalmente consapevole di tutto questo, ma non mi aspettavo di vedere una differenza così grande tra Java e MQL5 (tre volte tanto a favore di Java):

Forse la grafica non è il miglior argomento di confronto. Ma lì c'è una matematica.

File:
gravity.zip  3 kb
 
Vict:

Vi siete mai chiesti quanto tempo ci vuole all'avvio, quanta memoria viene consumata e quanti thread la JVM esegue per compilare byte di codice? Ho eseguito un mostro che ha compilato hello world al volo, ed è finito con entrambi i nativi. Solo che il mostro C non ne ha uno. E riguardo al pitone.


Va bene comprare un ciabattino numerico multicore con un vagone di RAM e dire che il mio java/sharp/... ...sono molto freddi in questo test, e tacciono sul carico complessivo. Non raggiungeranno mai C. Progresso, prendere tetris dagli anni 80, riscriverlo in sharpe, e correre veloce come prima, ma con una CPU a 60 core)).

ZS: simile a come due threads in Elbrus sono coinvolti solo nella traduzione da istruzioni x86. BELAZ (Bielorussia): un pacco.

C e Java sono, per una ragione, i due leader uguali nella classifica dei linguaggi di programmazione.

Potresti avere ragione in una certa misura, ma mi sembra che tu sia indietro con i tempi.
Certo, anch'io mi sono reso conto solo di recente di quanto fossi indietro quando ho iniziato a studiare per diventare un programmatore.
Pensavo di sapere molto, ma con la creazione di nuove connessioni neurali, la mia autostima è crollata.

 
Nikolai Semko:

Grazie.
Sono fondamentalmente consapevole di tutto questo, ma non mi aspettavo di vedere una differenza così grande tra Java e MQL5 (tre volte a favore di Java):

La grafica potrebbe non essere il miglior soggetto di confronto. Ma lì c'è solo una matematica.

Cosa vi aspettate da MQL5? Non potete ottenere il contesto del dispositivo, quindi disegnate usando un software di emulazione sui grafici.



Alexey Navoykov:
A proposito, per quanto riguarda Sharp, sembra che sia possibile compilare direttamente in codice nativo. Non l'ho ancora provato, ma dovrebbe essere forte.

Amo l'hubr, soprattutto per i commentihttps://habr.com/ru/company/microsoft/blog/265889/

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

 
Igor Makanu:

Cosa ti aspetti da MQL5? Non puoi ottenere il contesto del dispositivo, vero? Quindi disegni usando l'emulazione software sui grafici


Non credo che questo sia il caso.

Penso che il contesto sia legato quando si esegue

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

C e Java sono, per una buona ragione, i due leader uguali nella classifica dei linguaggi di programmazione.

Forse hai ragione per alcuni aspetti, ma sembra che tu sia indietro con i tempi.
Ammetto che anch'io mi sono reso conto solo di recente di quanto fossi indietro quando ho iniziato a studiare programmazione.
Pensavo di sapere molto, ma con la creazione di nuove connessioni neurali, la mia autostima è crollata.

Forse. Von sharp sta spostando Microsoft, il suo windows store (ecco che arriva la compilazione in nativ), è di moda dopo tutto. Dobbiamo fare come un branco.

 
Igor Makanu:

Il modello è lo stesso che in .Net - il codice sorgente è compilato in bytecode, questo sarà anche l'interprete, e scompattando il bytecode su un dato PC genererà già codice nativo per l'ambiente virtuale in cui sarà eseguito, cioè sarà già codice compilato

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


su Java cerca su Google "java compiler o interprete" - ci saranno articoli simili

cavolo, Igor questo articolo è del 2010. Molte cose sono cambiate in 9 anni.

 
Nikolai Semko:

Accidenti, Igor, questo articolo è del 2010. Molte cose sono cambiate in 9 anni.

Chi dice che le cose cambiano, i compilatori Borland non si vedono nemmeno più, mentre 10 anni fa erano tutti seduti su di loro su runet ))))

Non sono mai stato interessato a java, forse su 4pd quando avevano un telefono in java

Mail modo in cui funzionano è che sia .Net cheJava erano simili e la precompilazione a run-time li ha resi portabili attraverso le piattaforme.

 
Igor Makanu:

Chi dice che le cose cambiano, non si vedono nemmeno più i compilatori Borland, 10 anni fa tutti su runet li usavano ))))

Intendo i principi, non sono mai stato interessato a Java, forse su 4pd quando avevano un telefono in Java

Mail modo in cui funzionano è che sia .Net cheJava erano simili e la precompilazione a run-time li ha resi portabili attraverso le piattaforme.

Sì, sembra che concetti come interprete e compilatore si siano diffusi l'uno nell'altro.
 
Nikolai Semko:

Grazie.
Ne sono consapevole, ma non mi aspettavo di vedere una differenza così grande tra Java e MQL5 (tre volte di più a favore di Java):

La grafica potrebbe non essere il miglior soggetto di confronto. Ma c'è un po' di matematica da fare.

un po' fuorviante. Nel codice MQL ad ogni frame chiamato molto costoso ChartChanged() funzione. Senza di esso, il guadagno di Java non sarebbe 3, ma 2 volte.

Se il codice MQL fa la stessa cosa (anche 8 centesimi di gravità), ma senza array, la velocità in Java e MQL5 sarà uguale.


Ho notato da molto tempo che MQL5 non è amichevole con l'accesso agli array. L'accesso a un elemento dell'array è sproporzionatamente costoso. Credo che gli sviluppatori abbiano alcune cose su cui lavorare.

File:
Swirl.mq5  12 kb
 

Ho trovato uno studio interessante di due anni fa che confronta l'efficacia di diverse lingue

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



Motivazione: