Domande su OOP in MQL5 - pagina 47

 
Igor Makanu:

Gli sviluppatori di MT scrivono sempre che l'uso dei meccanismi integrati del compilatore sarà più veloce che chiamare anche le funzioni regolari

Se avete tempo e interesse, controllate la velocità della mia versione e della vostra con ArrayCopy

Controllerò la velocità un po' più tardi, sono impegnato con le mie lezioni di PC in questo momento.

Mi sbagliavo su ArrayCopy, perché hai un array di array, non copierà. Devi copiarlo elemento per elemento, quindi sì, il tuo modo è ottimale.
 
Alexey Navoykov:
Ho esagerato su ArrayCopy, hai un array di array, non lo copierà. Devi copiarli elemento per elemento, quindi sì, il tuo modo è migliore.

Uff... almeno qualcosa si è chiarito ))))


Anche se c'è un'opinione comune che MQL sia un linguaggio simile al C, ma imho è più vicino a Sharp che a Plus.

Ho copiato quasi il 99% del codice in MQL. È un lavoro di 5-10 minuti

ZS: Lo farei, ma credo di avere questo codice sul mio portatile - non ricordo, devo cercarlo, e a casa non ho potenza di calcolo... è un casino in generale ))))

 
Igor Makanu:

Uff... almeno qualcosa si è chiarito ))))


Anche se c'è un'opinione comune che MQL sia un linguaggio simile al C, ma imho è più vicino a Sharp che a Plus.

Ho copiato quasi il 99% del codice in MQL. È un lavoro di 5-10 minuti

ZS: Lo farei, ma credo di avere questo codice sul mio portatile - non ricordo, devo cercarlo, e a casa non ho potenza di calcolo... è un casino in generale ))))

È lontano dai pro come la luna e lontano da Sharp come l'orbita di Plutone. In generale, l'impressione generale è che tutto sia fatto nell'immagine di WinApi. E sì, i vantaggi sono ancora alla base.

 
Vladimir Simakov:

È vicino ai plus come alla luna, e Sharpe è vicino all'orbita di Plutone. In generale, l'impressione è che tutto sia fatto nell'immagine di WinApi. E sì, i vantaggi sono ancora alla base.

C'è molto da discutere, ma hai già affrontato i problemi di porting STL, vero?

per accelerare il processo di argomentazione.... Togliete STL e poi la gestione dei puntatori, e NON otterrete capacità MQL nell'output.

ma se si applica lo stesso "take away mine" a C#, allora ciò che rimane di Sharp potrebbe sembrare simile a MQL nelle sue possibilità

;)

 
Igor Makanu:

C'è molto da discutere, ma hai già affrontato i problemi di porting STL, vero?

per accelerare il processo di argomentazione.... Togliete STL e poi la gestione dei puntatori, e NON otterrete capacità MQL nell'output.

ma se si applica lo stesso "take away mine" a C#, allora ciò che rimane di Sharp potrebbe sembrare simile a MQL nelle sue possibilità

;)

Se rimuovete i puntatori da C, non avrete neanche C, mentre stl è solo una libreria))))

E cosa suggerisci di togliere a Sharpe, oggetti?) Avrà lo stesso effetto.

A proposito, i template in mql sono ancora template da C, non generici da C# (tempo di compilazione). E non ci sono macro in Sharp).

 
Vladimir Simakov:

Se rimuovete i puntatori dal C, non ci sarà nessun C, e stl è solo una libreria).

E cosa suggerisce di rimuovere da Sharp, gli oggetti?) Avrà lo stesso effetto.

A proposito, i modelli in mql sono ancora modelli da C, non generici da C# (tempo di compilazione). E non ci sono macro in Sharpe).

Non credo che valga la pena perdere tempo e fatica a discutere conIgor Makanu,
L'uomo sta cercando di discutere delle alte questioni del livello superiore senza capire lequestioni banali del livello di apprendista.


 
Igor Makanu:

C'è molto da discutere, ma hai già affrontato i problemi di porting STL, vero?

per accelerare il processo di argomentazione.... Togliete STL e poi la gestione dei puntatori, e NON otterrete capacità MQL nell'output.

ma se si applica lo stesso "take away mine" a C#, allora ciò che resta di Sharp potrebbe sembrare simile a MQL nelle sue possibilità

;)

STL è solo una libreria. Usarlo o non usarlo non influenza le possibilità della lingua, saranno 2 teste più alte di MQL come prima.

E Sharp è simile a MQL solo negli array. Tutto il resto MQL ricorda il C++, forse dal '99 o prima.

 
Sergey Dzyublik:

Non credo di dover perdere tempo ed energie a discutere conIgor Makanu,
Una persona sta cercando di discutere di cose di alto livello senza capire lequestioni banali del livello del tirocinante.

Non discutere, non perdere tempo, non è come ho scritto nelSergey Dzyublik- risposta! ;)

Hai visto il titolo del topic? - Le mie domande corrispondono a questo thread? - Beh, nessuno mi ha assegnato il compito di compiacere il tuo Ego oggi))))

Vladimir Simakov:

Se togliete i puntatori dal C, non avrete nessun C, mentre stl è solo una libreria))))

Lo capisco, ma i linguaggi di alto livello sono interessanti con soluzioni già pronte, o saremmo impegnati a scrivere printf() per mezza giornata ora))

Alexey Navoykov:

E Sharp è simile a MQL solo negli array. Tutto il resto MQL ricorda il C++, forse dal '99 o prima.

Potresti avere ragione.

 
Igor Makanu:

C'è molto da discutere, ma avete già incontrato problemi con il porting STL, vero?

I principali problemi che ho incontrato nel porting di std::vector da C++ a MQL:
1)insetti(e non tutti qui).
2) Le funzioni standard funzionano adeguatamente solo per certi tipi di dati (devo scrivere manualmente ArrayCopy universale, ArrayFill con supporto di compilazione condizionale, a seconda del tipo, per la massima velocità);
3) Le funzioni standard lavorano abbastanza lentamente per certi tipi di dati (bisogna prescrivere manualmente ArrayResize per un rapido Resize+Reserve per tipi di dati semplici);
4) E solo al quarto posto la mancanza di funzionalità - mancanza di "dichiarazione typedef" (è aggirata attraverso #define, ereditarietà di classi e strutture, uso di classi wrapper per tipi semplici).


 
La cosa principale è che si suppone che sia di livello superiore al C++, e il codice in esso dovrebbe essere più semplice e laconico. Ma in realtà è il contrario. Il codice in MQL è molto più macchinoso e goffo. Bisogna fare un sacco di calcoli.