Mein Ansatz. Der Kern ist der Motor. - Seite 83

 
Реter Konow:
Der Motor und der Berater arbeiten in einem Kommunikationsfluss. Jede Zelle in der Tabelle ist eine Anzahl von Simovalven. Darüber hinaus gibt es eine Vielzahl anderer Elemente, die ihre Werte, Zustände usw. weitergeben. Sie müssen Zeilen schnell austauschen und dürfen die OnChartEvent()-Ereigniswarteschlange nicht überlasten.

Nehmen Sie SQL und zerbrechen Sie sich nicht den Kopf :-)

 
Nikolai Semko:
Sie meinen, Sie haben keine Ahnung, wie Sie das mit den Ressourcen und der Gewerkschaft machen sollen?
Ich versichere Ihnen, dass dies die schnellste Lösung ist.
Komm schon, beweg dein Gehirn.

Nach dir, Nikolai.

Sie haben die Option mit der Gewerkschaft angeboten, aber Sie haben mir kein Beispiel gezeigt. Dann wechselten Sie zuCharArrayToString undStringToCharArray. Jetzt sprechen Sie wieder von einer Gewerkschaft.

Also, ist es der beste Weg, um das Problem zu lösen, indem Zeichenfolge in char und dann zurück, mit anschließender Aufteilung der Zeichenfolgen (Zeichenfolgen enthalten eine Zusammenstellung von Parameter-Nummern und deren Werte)?

 
Interessehalber versuche ich es mit der Gewerkschaftsvariante. Und mitCharArrayToString undStringToCharArray. Mein Gefühl sagt mir allerdings, dass dies wahrscheinlich nicht schneller sein wird als die Kommunikation über die Beschreibung von МТ-Objekten. Aber ich könnte mich irren. Schauen wir mal...
 
Реter Konow:

Nach dir, Nikolai.

Ich möchte Sie nicht über den Tisch ziehen, indem ich Ihre Arbeit mache. Es ist mir wichtig, dass Sie es selbst tun. Sonst werden Sie es nicht verstehen.
Piotr, sag mal, benutzt du auch Tangas, um Double, Long und Int zu übergeben?
 
Nikolai Semko:
Sagen Sie mir, Peter, verwenden Sie auch Strings, um double, long und int zu übergeben?

Der Kern der Parameter ist ein einzelnes Array. Und sie ist vom Typ String. Aus einem Grund - es ist ein Universaltyp. Das ist sehr praktisch. Sie können einen beliebigen Wert schreiben und ihn dann in den gewünschten Typ umwandeln.

Andernfalls wäre es notwendig, viele Parameter zu erstellen. Jeder für seine eigene Art von Wert. Als Ergebnis hätten wir ein Durcheinander von Parameterattributen, deren Indizierung, Schreibort und viele andere Dinge.

 
Nikolai Semko:
Ich möchte Sie nicht über den Tisch ziehen, indem ich Ihre Arbeit mache. Es ist mir wichtig, dass Sie es selbst tun. Sonst würdest du es nicht verstehen.

Lass uns nicht trollen. Mentoring ist nicht angebracht. Ich verstehe mehr über diesen Job.


Nikolai, ich habe dir gesagt, dass ich deine Version ausprobieren werde). Also werde ich es tun.

 
Maxim Kuznetsov:

nehmen Sie SQL und machen Sie sich keine Sorgen :-)

Als ob ich an die Sache mit dem "nicht den Kopf durcheinander bringen" anknüpfen wollte :-)

Ich bin heute freundlich und überhaupt nicht böse...

Peter, über "visuelle Programmierung" (nicht nur GUI), für die Entwicklung, so dass Sie nicht ein Array-auf-ein-Array bauen müssen,
Schauen Sie sich zum Beispiel Oracle an. Einer der klaren Marktführer

Der kostenlose visuelle Editor (zusammen mit der virtuellen Maschine) ist hier zu finden: https: //apex.oracle.com/en/

Alles, was Sie für den Anfang brauchen, ist ein Buch aus der Reihe "The Beginnings of SQL for Dummies" und ein paar Tage freie Zeit.

Home
  • apex.oracle.com
Oracle APEX makes it easy to build beautiful apps that are responsive, accessible, and can be effortlessly customized to fit your company's brand and personality. The apps you build are responsive out-of-the-box and are designed to work well regardless of screen size or form factor. Our comprehensive set of modern UI components are all built to...
 
Реter Konow:

Lass uns nicht trollen. Der betreuende Ton ist unangemessen. Ich verstehe mehr über diesen Job.

Ich will Sie nicht davon abbringen.
Ich hatte keinen solchen Ton. Es ist nur so, dass ich schon mehrmals Code für dich gepostet habe, der viel schneller war als deiner, in der Hoffnung, dass du ihn lernst und schnellere Methoden anwendest, aber du hast nie davon Gebrauch gemacht.

Warum sollte ich diese undankbare Aufgabe übernehmen?
 
Реter Konow:

Der Kern der Parameter ist ein einzelnes Array. Und sie ist vom Typ String. Aus einem Grund - es ist ein Universaltyp. Das ist sehr praktisch. Sie können einen beliebigen Wert schreiben und ihn dann in den gewünschten Typ umwandeln.

Andernfalls wäre es notwendig, viele Parameter zu erstellen. Jeder für seine eigene Art von Wert. Infolgedessen gäbe es ein Durcheinander mit dem Besitz von Parametern, der Indizierung, dem Schreibort und vielen anderen Dingen.

Vielseitigkeit ist oft gleichbedeutend mit Langsamkeit, und das gilt erst recht für Saiten.
Hier ist ein Beispiel.

Ich habe einmal eine Zeichenkette geparst, die ich mit WebRequest von einer Kryptobörse erhalten habe. Und ich parsed es mitJSON-Bibliothek portiert vonSergeyev von "High-Speed-C++-Bibliothek". Und ich habe festgestellt, dass die Geschwindigkeit sehr unbefriedigend ist. Dort wurde alles über "universelle" Strings abgewickelt.

Ich verstand, dass der Grund für die niedrige Geschwindigkeit Stringing war und wollte die Verwendung von String-Funktionen vermeiden und schrieb eine Funktion, die direkt vom uchar-Array parst. Das Ergebnis hat mich ziemlich überrascht. Meine Parsing-Geschwindigkeit war.... (Trommelwirbel) 800 Mal schneller. Wenn das Parsen einer ganzen Zeichenkette durch JSON 0,3 Sekunden dauert, hat meine Funktion sie in weniger als einer halben Millisekunde geparst.

Hier ist ein Beispiel für mein Parsing über uchar-Array.

 
Nikolai Semko:

Vielseitigkeit ist oft gleichbedeutend mit Langsamkeit, und bei Saiten gilt das erst recht.
Hier ist ein Beispiel.

Ich habe einmal eine von einer Krypto-Börse empfangene Zeichenkette mit WebRequest geparst. Und ich habe es mit derJSON-Bibliothek von Sergeev geparst, die er aus der "High-Speed-C++-Bibliothek" portiert hat. Und ich habe festgestellt, dass die Geschwindigkeit sehr unbefriedigend ist. Dort wurde alles über "universelle" Zeichenketten realisiert.

Ich wollte weg von Strings und schrieb eine Funktion, die direkt aus dem uchar-Array parst. Das Ergebnis war überraschend. Meine Parsing-Geschwindigkeit ist.... (Trommelwirbel) 800 Mal schneller.

Hier ist ein Beispiel für mein Parsen durch ein uchar-Array.

json-Parsing (und Parsing im Allgemeinen) ist eine andere Geschichte ;-)

Ich hatte Probleme bei einer sehr großen Single-Thread-Skriptanwendung, die mit Krypto arbeitet.
Verdachtsmomente gab es überall, wo und wie alles optimiert wurde. Das Problem scheint im json-Parser eines Drittanbieters zu liegen :-)

Das liegt daran, dass "universelle" Bibliotheken für Vielseitigkeit und die Arbeit mit den kompliziertesten json-Daten konzipiert sind, aber in unserem Bereich gibt es einfach keine,
und alle Pakete sind sehr kurz.

Und ja, das Parsen von Text in MQL ist eine wahre Freude :-). Nun, es ist nicht für das Parsen von Text gedacht. Ich meine, man kann, aber es ist mühsam.

Arrays, Aufträge - das ist die Domäne von MQL.


Grund der Beschwerde: