Domande su OOP in MQL5 - pagina 64

 
Igor Makanu:

imho, grande lavoro, ci sono naturalmente domande su quanto velocemente lo hai fatto.... se questo è nello spazio di un'ora.... Beh, questo è un po' esagerato!

controllato la versione riveduta - ok, tutto funziona correttamente


Questo tweak? Fin dall'inizio, circa 30 minuti in totale.

 
Vladimir Simakov:

Questo mestiere? Dall'inizio, un totale di 30 minuti.

Non voglio adulare.

grazie ancora!

ZS: a cosa serve? uno degli usi - in questo codicehttps://www.mql5.com/ru/forum/325418/page4#comment_16116740

è possibile caricare/salvare diversi oggetti attraverso un file e anche aggiungere l'oggetto generato dal tester al runtime tramite stringa di input senza fermare l'esecuzione di EA, l'ho già fatto attraverso lo scambio binario, ma ciò che è buono di json - può essere letto senza alcuna manipolazione aggiuntiva

 
Igor Makanu:

Non voglio adulare.

grazie ancora!

ZS: a cosa serve? uno degli usi - in questo codicehttps://www.mql5.com/ru/forum/325418/page4#comment_16116740

Posso caricare/salvare diversi oggetti attraverso un file, e anche posso aggiungere l'oggetto generato dal tester al runtime attraverso una stringa di input senza fermare l'esecuzione di EA, l'ho già fatto attraverso lo scambio binario, ma ciò che è buono di json - può essere letto senza alcuna manipolazione aggiuntiva

Solo per uso interno - è più facile per i dati binari, IMHO. JSON, però, è più per lo scambio di dati in rete, lì, sul tempo di ricezione/trasmissione, il tempo di serializzazione/deserializzazione, non significa nulla. E così, se avete bisogno di organizzare uno scambio su una macchina, allora, IMHO, File mapping è il migliore, e veloce e facile, e sulla rete - qui web soccet dominerà.

 
Vladimir Simakov:

Solo per uso interno, è più facile usare dati binari, IMHO. JSON, tutto sommato, è più per lo scambio di dati in rete, lì, sullo sfondo del tempo di ricezione/trasmissione, il tempo di serializzazione/deserializzazione, non significa nulla. Se abbiamo bisogno di organizzare lo scambio di dati su una macchina, allora, IMHO, File mapping è il migliore, veloce e facile, e su rete - web soccet regnerà qui.

No, lo scambio di dati è già fatto e funzionante - dati binari attraverso il database Redis - velocità di scambio microsecondi - il volume di scambio ... bene, non sembra limitato a testare 600 mb senza problemi, e la sincronizzazione è fornita, attraverso template tutti i wrapper, scrivere leggere in un solo comando - in generale, senza molto sforzo, tutto funziona senza problemi e in modo affidabile

json per leggere/memorizzare in un file - operazione una tantum e come ho scritto per avere la possibilità di fare qualcosa in tempo

il compito è formulato approssimativamente cosìhttps://www.mql5.com/ru/forum/85652/page50#comment_16415557 , in generale mi muovo come descritto )))

 
Igor Makanu:

no, scambio di dati già fatto e funzionante - dati binari via database Redis - tasso di scambio al microsecondo - volume di scambio... bene, sembra non limitato a 600 mb senza problemi, e la sincronizzazione è fornita, attraverso template tutti i wrapper, scrivere leggere in un solo comando - in generale senza molto sforzo, tutto funziona rapidamente e in modo affidabile

json per leggere/memorizzare in un file - operazione una tantum e come ho scritto per avere la possibilità di fare qualcosa in tempo

il problema è quasi formulato cosìhttps://www.mql5.com/ru/forum/85652/page50#comment_16415557 , in generale, sto seguendo la descrizione )))


Quale versione di Redis?

Sto solo aspettando con ansia la funzione Streams 5, altrimenti redis non è così interessante... E dove posso ottenere il 5 per Windows?

 
Maxim Kuznetsov:


Redis quale versione?

Ho un locale sotto Windows, puramente per la condivisione della memoria

Redis 3.2.100 64 bit

Non ci ho pensato molto, ho avvolto la dll ServiceStack.Redis da githab, non conoscendo il materiale - un paio di giorni di lavoro


Maxim Kuznetsov:

E dove posso trovarne 5 per Windows?

Non è disponibile, il progetto Windows è stato abbandonato molto tempo fa.

ma ci sono molte informazioni in rete su come eseguire software linux su vin 10https://redislabs.com/blog/redis-on-windows-10/

 
Vladimir Simakov:

Qual è il problema, allocare 12 byte di memoria sullo stack, non sapere con certezza cosa sia un oggetto stringa?

Che sfortuna!

1 - creando un oggetto. 2 - solo attraverso una normale chiamata di funzione. Il primo numero è il tempo in millisecondi, non fate caso al secondo.

È quasi 10 volte più veloce (e a volte più di 10 volte più veloce). Che cosa triste... pila... mucchio... ***cha

 
Dmitry Fedoseev:

Che sfortuna!

1 - Attraverso la creazione di oggetti. 2 - semplicemente attraverso una normale chiamata di funzione. Il primo numero è il tempo in millisecondi, non fate attenzione al secondo.

È quasi 10 volte più veloce (e a volte più di 10 volte più veloce). Che cosa triste... pila... mucchio... ***cha.

Consideratelo come in C# - l'oggetto è sempre nell'heap. Solo gli scalari, i descrittori e (come eccezione) alcuni array di dimensioni note sono sullo stack.

 
Maxim Kuznetsov:

Pensatelo come C# - l'oggetto è sempre nell'heap. Solo gli scalari, i descrittori e (come eccezione) alcuni array di dimensioni note sono sullo stack.

Hai dimenticato le strutture e le classi (senza new) - sono entrambe allocate sullo stack.

 
Dmitry Fedoseev:

Che sfiga!
1 - attraverso la creazione di oggetti. 2 - semplicemente attraverso una normale chiamata di funzione. Il primo numero è il tempo in millisecondi, non fate attenzione al secondo.
È quasi 10 volte più veloce (e a volte più di 10 volte più veloce). Che cosa triste... pila... mucchio... ***cha.

Puoi spiegarmi di cosa si tratta, perché sono un po' tonto, l'ho letto tre volte e ancora non l'ho capito...