Test delle prestazioni di singole etichette di testo e bitmap su un grafico - pagina 3

 
Renat:

Pubblicato un test aggiornato. Ora mostra la risoluzione utilizzata e con un suggerimento su come testare.

Beh, è più o meno quello che stiamo facendo.
 
sergeev:


In generale, tutti i test mostrano che i bitmap sono in qualche modo più lenti.

+ Ho i miei dubbi sulla correttezza di dover leggere la coordinata del marcatore. perché controllare il trasportatore?

In realtà i test dimostrano che non è più lento. Almeno non sulle CPU moderne.

Ecco il mio risultato su i7-3770S, Windows 8 x64, 16 RAM, NVIDIA GeForce GT 640M:

2013.04.27 22:21:50     BenchmarkLabel (EURUSD,M15)     Тестирование завершено
2013.04.27 22:21:50     BenchmarkLabel (EURUSD,M15)     5. Время обновления текста и позиций у битмапа без прозрачности = 15007 ms
2013.04.27 22:21:35     BenchmarkLabel (EURUSD,M15)     4. Время обновления текста и позиций у битмапа с прозрачностью = 15257 ms
2013.04.27 22:21:20     BenchmarkLabel (EURUSD,M15)     3. Время обновления текста и позиций у меток со чтением = 16739 ms
2013.04.27 22:21:03     BenchmarkLabel (EURUSD,M15)     2. Время обновления текста и позиций у меток без чтения = 18845 ms
2013.04.27 22:20:44     BenchmarkLabel (EURUSD,M15)     1. Время обновления текста у меток без чтения = 21497 ms
2013.04.27 22:20:23     BenchmarkLabel (EURUSD,M15)     0. Время разогрева динамических очередей без визуализации = 124 ms
2013.04.27 22:20:23     BenchmarkLabel (EURUSD,M15)     Для корректного теста подберите размер окна 1024 x 768 пикселей, без индикаторов, не трогайте ничего, не сворачивайте и не закрывайте окна
2013.04.27 22:20:23     BenchmarkLabel (EURUSD,M15)     Разрешение чарта: 1020 x 761 пикселей

Bitmap ha 15.257ms con tutte le trasparenze contro 21.497ms per i tag.

I controlli della pipeline sono importanti perché il lavoro nel mondo reale spesso comporta la lettura dei parametri degli oggetti prima di cambiarli. E più spesso c'è una mescolanza lettura/scrittura negli oggetti, più lentamente la modifica degli oggetti funzionerà. La migliore strategia per modificare gli oggetti è quella di leggere prima in blocco e poi scrivere in blocco, evitando di mischiarsi. Soprattutto se avete migliaia di oggetti sul grafico.


Il risultato più importante del test è che non c'è un ritardo multiplo, dieci o cinquanta volte nelle bitmap. Anche se ci può essere un ritardo come nelle misure di cui sopra (ma ci sono domande sulla dimensione e la configurazione del grafico di lavoro), sono entro una dozzina di per cento.

Ma con tutto ciò una bitmap ha un'enorme prospettiva di velocità con più oggetti, una maggiore qualità di rendering (inclusa la trasparenza) e la possibilità di renderizzare qualsiasi cosa si voglia.

 

Si può impostare ancora più velocemente:

1. Riduci la finestra del grafico in modo che la tela creata copra ~100% di essa.

2. Impostare uno schema di colori del grafico monocromatico (tramite proprietà -> colori -> schema di colori)/.

3. Riduci il grafico al minimo (candele alla dimensione massima).

Ma. Come potete vedere, anche se i numeri assoluti del benchmark saranno più bassi, i loro valori relativi saranno +/- gli stessi.

 

Notate come qualche componente del computer ha causato un calo delle prestazioni della gestione degli oggetti misti di un fattore 3(test sanyooooook):

:

Molto probabilmente la colpa è della CPU (le serrature l'hanno uccisa?) e della memoria. È interessante sapere quale processore è stato usato.

O forse il computer era solo stressato o lo schermo andava a scatti al momento di questo test.

 
sergeev:

Ma io disegnerei i grafici con una bitmap. perché non ci sono opzioni :) anche tabelle multi-oggetto.

Una bitmap ha tanti vantaggi quanti gli oggetti.

Sono d'accordo. Ogni componente è buono per il suo scopo. I bitmap sono indispensabili, per esempio, per disegnare elementi di interfaccia. Beh, non ci sono altre opzioni.

Ma è più veloce/efficiente emettere le statistiche con i tag. :)

 
voix_kas:

Ma. Come potete vedere, anche se i numeri assoluti del benchmark saranno più bassi, i loro valori relativi saranno +/- gli stessi.

Ho appositamente specificato le condizioni di ingresso, in modo che non ci siano errori casuali e tutti capiscano i requisiti di una misurazione pulita.

Il tuo risultato con 2355ms in uno dei test è stato causato dal nascondere/nascondere/scivolare/cambiare la finestra del terminale durante il test:

2013.04.27 20:09:37     BenchmarkObjects (EURUSD,M5)    5. Время обновления текста и позиций у битмапа без прозрачности = 12558 ms
2013.04.27 20:09:24     BenchmarkObjects (EURUSD,M5)    4. Время обновления текста и позиций у битмапа с прозрачностью = 12839 ms
2013.04.27 20:09:11     BenchmarkObjects (EURUSD,M5)    3. Время обновления текста и позиций у меток с чтением = 2355 ms
2013.04.27 20:09:09     BenchmarkObjects (EURUSD,M5)    2. Время обновления текста и позиций у меток без чтения = 10655 ms
2013.04.27 20:08:58     BenchmarkObjects (EURUSD,M5)    1. Время обновления текста у меток без чтения = 10359 ms
2013.04.27 20:08:48     BenchmarkObjects (EURUSD,M5)    0. Время разогрева динамических очередей без визуализации = 124 ms
 
Potreste essere sorpresi, ma questo test (#3) non funziona per me. Ho scritto alla SD(#732578). Più precisamente, passa in un caso su una dozzina. Nessuna notifica o errore nel registro. Il terminale si blocca per tutta la durata di questo test.
 
papaklass:

Il mio test sul desktop

Sì, Renat, che risoluzione hai scelto. Mi ci è voluto un po' per trovare tutto sullo schermo dopo 1920 x 1080. Ora lo eseguirò sul mio portatile.

Grazie per i risultati. Anche i bitmap stanno diventando più veloci.

 
voix_kas:
Potreste essere sorpresi, ma questo test (#3) non funziona per me. Ho scritto alla SD(#732578). Più precisamente, passa in un caso su una dozzina. Nessuna notifica o errore nel registro. Il terminale si blocca per un po' mentre passa questo test.
Grazie, diamo un'occhiata.
 
Renat:

Notate come qualche componente del computer ha causato un calo delle prestazioni della gestione degli oggetti misti di un fattore 3(test sanyooooook):

:

Molto probabilmente la colpa è della CPU (le serrature l'hanno uccisa?) e della memoria. È interessante sapere quale processore è stato usato.

O forse il computer era solo stressato o lo schermo era scosso al momento di questo test.

Durante il primo test, ho cambiato la finestra, durante il secondo non ho toccato nulla, allo stesso tempo MT4 è in esecuzione in esso uno script è in esecuzione grafico e alcuni altri processi che possono caricare il computer )