Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 154

 
Roman:

Obwohl in Byte-Code übersetzt, hat Java seine eigene virtuelle Ausführungsmaschine (JVM).
Außerdem ist die Sprache streng typisiert, im Gegensatz zu anderen Sprachen mit einem Interpreter.
Höchstwahrscheinlich ist die strikte Typisierung und die JVM der Grund für die schnelle Ausführung und Übertragung von Anweisungen an die Hardware.
Die amerikanischen Handelsterminals sind nicht ohne Grund in Java geschrieben. Die CME Group in Chicago bietet offiziell ein Terminal an, das in Java geschrieben ist.
Ein Programmierer sagte mir einmal, dass Java seine Wurzeln in der Telekommunikation hat.
Und in der Telekommunikationsbranche kommt es von Anfang an auf Schnelligkeit bei der Verarbeitung und Übermittlung von Daten an.
Und Oracle hat eine eigene Community für die Entwicklung dieser Sprache.
Die Sprache ist also lebendig und wird von der Oracle-Gemeinschaft weiterentwickelt.

Auch die Marke Quik und die Sprache LUA wurden übrigens von den Amerikanern entwickelt.
Aber in den zotteligen 90er Jahren wurde es erfolgreich an die Russische Föderation verkauft.
Schon damals erkannten die Amerikaner, dass LUA keine Zukunft hatte.
Und sie haben es erfolgreich in der Russischen Föderation deponiert, wo sich nach dem Zusammenbruch der Union gerade ein Aktienmarkt zu bilden begann.

Igor Makanu:

Das Modell ist das gleiche wie in .Net - der Quellcode wird in Bytecode kompiliert, dieser wird auch der Interpreter sein, und das Entpacken des Bytecodes auf einem bestimmten PC wird bereits nativen Code für die virtuelle Umgebung erzeugen, in der er ausgeführt wird, d.h. es wird bereits kompilierter Code sein

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

googeln Sie "java compiler or interpreter" für Java - es wird ähnliche Artikel geben

Ich danke Ihnen.
Ich bin mir dessen grundsätzlich bewusst, aber ich habe nicht erwartet, einen so großen Unterschied zwischen Java und MQL5 zu sehen (dreimal so viel zugunsten von Java):

Vielleicht ist die Grafik nicht das beste Thema für einen Vergleich. Aber dort gibt es nur eine Mathematik.

Dateien:
gravity.zip  3 kb
 
Vict:

Haben Sie sich schon einmal gefragt, wie viel Startzeit benötigt wird, wie viel Arbeitsspeicher verbraucht wird und wie viele Threads die JVM laufen lässt, um Bytes von Code zu kompilieren? Ich habe ein Monster laufen lassen, das Hallo Welt on the fly kompiliert hat und am Ende sowohl mit nativ. Nur hat das Monster C keins. Und über Python.


Es ist in Ordnung, einen Multicore-Numeric-Cobbler mit tonnenweise RAM zu kaufen und zu sagen, dass mein Java/Sharp/... ...sind bei diesem Test sehr cool und schweigen über die Gesamtbelastung. Sie werden C niemals einholen. Fortschritt, nehmen Sie Tetris aus den 80er Jahren, schreiben Sie es in Sharpe um, und fahren Sie so schnell wie zuvor, aber mit einer 60-Kern-CPU)).

ZS: Ähnlich wie zwei Threads in Elbrus nur an der Übersetzung von x86-Instruktionen beteiligt sind. BELAZ (Belarus): ein Paket.

C und Java sind nicht ohne Grund zwei gleichberechtigte Spitzenreiter in der Rangliste der Programmiersprachen.

Sie mögen bis zu einem gewissen Grad Recht haben, aber Sie scheinen der Zeit hinterher zu sein.
Zugegeben, auch ich habe erst vor kurzem erkannt, wie weit ich zurücklag, als ich die Ausbildung zum Programmierer begann.
Ich dachte, ich wüsste eine Menge, aber mit dem Aufbau neuer neuronaler Verbindungen sank mein Selbstwertgefühl.

 
Nikolai Semko:

Ich danke Ihnen.
Ich bin mir dessen grundsätzlich bewusst, aber ich habe nicht erwartet, dass es einen so großen Unterschied zwischen Java und MQL5 gibt (dreimal zugunsten von Java):

Grafiken sind vielleicht nicht das beste Vergleichsobjekt. Aber es gibt dort nur eine Mathematik.

Was erwarten Sie von MQL5? Sie können den Gerätekontext nicht abrufen, also zeichnen Sie mit Emulationssoftware auf Diagrammen.



Alexey Navoykov:
Übrigens, was Sharp angeht, scheint es möglich zu sein, direkt in nativen Code zu kompilieren. Ich habe es noch nicht ausprobiert, aber es soll cool sein.

Ich liebe den Hubr, besonders für die Kommentarehttps://habr.com/ru/company/microsoft/blog/265889/

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

 
Igor Makanu:

Was erwarten Sie von MQL5? Sie können den Gerätekontext nicht abrufen, oder? Sie zeichnen also mit Software-Emulation auf Diagrammen


Ich glaube nicht, dass dies der Fall ist.

Ich denke, dass der Kontext gebunden ist, wenn die Ausführung

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

C und Java sind aus gutem Grund die beiden gleichberechtigten Spitzenreiter in der Rangliste der Programmiersprachen.

Sie mögen in mancher Hinsicht Recht haben, aber Sie scheinen der Zeit hinterher zu sein.
Zugegeben, auch ich habe erst vor kurzem erkannt, wie weit ich zurücklag, als ich mit dem Programmieren begann.
Ich dachte, ich wüsste eine Menge, aber mit dem Aufbau neuer neuronaler Verbindungen sank mein Selbstwertgefühl.

Vielleicht. Von sharp bewegt sich Microsoft, seine Windows Store (hier kommt die Kompilation in nativ), es ist in Mode, nachdem alle. Das müssen wir als Herde tun.

 
Igor Makanu:

Das Modell ist das gleiche wie in .Net - der Quellcode wird in Bytecode kompiliert, dieser wird auch der Interpreter sein, und das Entpacken des Bytecodes auf einem bestimmten PC wird bereits nativen Code für die virtuelle Umgebung erzeugen, in der er ausgeführt wird, d.h. es wird bereits kompilierter Code sein

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


über Java googeln "java compiler or interpreter" - es wird ähnliche Artikel geben

Herrje, Igor, dieser Artikel ist von 2010. In 9 Jahren hat sich viel verändert.

 
Nikolai Semko:

Herrje, Igor, dieser Artikel ist von 2010. In 9 Jahren hat sich viel verändert.

Wer kann schon sagen, dass sich die Dinge ändern, man kann die Borland-Compiler nicht einmal mehr sehen, und vor 10 Jahren liefen sie alle noch auf dem Runet ))))

ich habe mich nie für Java interessiert, vielleicht bei 4pd, als sie ein Telefon in Java hatten

Aber die Art und Weise, wiesie funktionieren, ist, dass sowohl .Net als auchJava gleich waren und durch die Vorkompilierung zur Laufzeit plattformübergreifend portabel wurden.

 
Igor Makanu:

Wer kann schon sagen, dass sich die Dinge ändern, man kann nicht einmal mehr Borland-Compiler sehen, vor 10 Jahren benutzte sie noch jeder auf dem Runet ))))

Ich meine die Prinzipien, ich habe mich nie für Java interessiert, vielleicht bei 4pd, als sie ein Telefon in Java hatten

Aber die Art und Weise, wiesie funktionieren, ist, dass sowohl .Net als auchJava gleich waren und durch die Vorkompilierung zur Laufzeit plattformübergreifend portabel wurden.

Ja, ich habe das Gefühl, dass Begriffe wie Interpreter und Compiler ineinander übergegangen sind.
 
Nikolai Semko:

Ich danke Ihnen.
Ich bin mir dessen bewusst, aber ich habe nicht erwartet, einen so großen Unterschied zwischen Java und MQL5 zu sehen (dreimal mehr zugunsten von Java):

Grafiken sind vielleicht nicht das beste Vergleichsobjekt. Aber es ist ein wenig Mathematik im Spiel.

ein wenig irreführend. In MQL-Code bei jedem Frame aufgerufen sehr teuer ChartChanged() Funktion. Ohne sie wäre der Java-Gewinn nicht 3, sondern 2 mal so hoch.

Wenn der MQL-Code das Gleiche tut (auch 8 Cent Schwerkraft), aber ohne Arrays, wird die Geschwindigkeit in Java und MQL5 gleich sein.


Mir ist schon lange aufgefallen, dass MQL5 nicht mit Array-Zugriff zurechtkommt. Der Zugriff auf ein Array-Element ist unverhältnismäßig teuer. Ich denke, die Entwickler müssen noch an einigen Dingen arbeiten.

Dateien:
Swirl.mq5  12 kb
 

Ich habe eine interessante Studie von vor zwei Jahren gefunden, in der die Wirksamkeit verschiedener Sprachen verglichen wird

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