Tuval ve Etiketler - sayfa 9

 
Tuvalin net olmamasına ve metni metne yontmasına rağmen, etikete metin çıktısı tuvale çıktıdan 100 kat daha hızlıdır.
 
Alexey Viktorov :

Dmitry, bir şeyi yargılamadan önce, her şeyin nasıl başladığını anlamalısın ...

Daha ileride bir yerde yanılmıyorsam elli satır kadar söylendi...

Her şey nerede başladı? Gerçeklikten kopuk mu?

 
Dmitry Fedoseev :
Etikete metin çıktısı, tuvale çıktıdan 100 kat daha hızlıdır, ancak tuval onu temizlememiş, ancak metni metne yontmuş olmasına rağmen.

Yakında Canvas'ın yeterince hızlı olacağı testler sunacağım. Ayrıca ilgili kaynak kodlarını KB olarak güncelleyeceğim. Daha sonra öğrendiğim gibi, her şey zaman birimi başına güncelleme sayısını sınırlamakla ilgili. Yukarıdaki mesajlara bakın, orada tartışıldı. Bu gönderiyle başlayın: https://www.mql5.com/ru/forum/364640/page6#comment_21290218 .

 
Mihail Matkovskij :

Yakında Canvas'ın yeterince hızlı olacağı testler sunacağım. Ayrıca ilgili kaynak kodlarını KB olarak güncelleyeceğim. Daha sonra öğrendiğim gibi, her şey zaman birimi başına güncelleme sayısını sınırlamakla ilgili. Yukarıdaki mesajlara bakın, orada tartışıldı. Bu gönderiyle başlayın: https://www.mql5.com/en/forum/364640/page6#comment_21290218 .

Ve ben hayal kurmuyorum, ama gerçekte kullanılacak olan kodun çalışmasını ölçeceğim. Ve neyin, nerede çizildiği kesinlikle umurumda değil, programın son zamanını ölçüyorum.

 
Yalnızca bir TextOut () çağrısının tamamen aptalca bir karşılaştırması bile, etikete metin çıktısı ile karşılaştırıldığında 70 kat daha yavaştır.
 
Dmitry Fedoseev :

Ve ben hayal kurmuyorum, ama gerçekte kullanılacak olan kodun çalışmasını ölçeceğim.

Dmitry Fedoseev :
Yalnızca bir TextOut () çağrısının tamamen aptalca bir karşılaştırması bile, etikete metin çıktısı ile karşılaştırıldığında 70 kat daha yavaştır.

Eğer istemiyorsan veya çözemiyorsan, sana bir teklif vereyim:

Renat Fatkhullin'in fotoğrafı.

Nikolai haklı - etiket özelliklerini düzenlemenin etiket oluşturma ile hiçbir ilgisi yok.

Etiket, grafikteki diğer herhangi bir nesne gibi, MQL5 programının çalışmasından bağımsız olarak tamamen farklı bir iş parçacığında çizilir. Robot sadece çizelgenin tekrar çizilmeye zorlanmasını isteyebilir, ancak çizim süresini ölçemez. Nesnelerle bir grafik çizmek tamamen eşzamansızdır.

Ancak, doğrudan robot iş parçacığında yapıldığından tuvalde çizimin ölçülmesi kolaydır ve ardından grafiğin bağımsız çizimi sırasında, bitmiş bitmap'in yerel BitBlit'ini pencere bağlamına dönüştürmek kalır. Bu işlem temeldir ve video kartı tarafından iyi bir şekilde hızlandırılır.

Metin etiketlerinde TTF yazı tiplerinde SetFont/TextOut oldukça pahalıdır.
 
Mihail Matkovskij :

Bunu istemiyorsanız veya anlamak istemiyorsanız, o zaman bir teklifiniz var:

sana cevap verdim zaten

 
Dmitry Fedoseev :

sana cevap verdim zaten

MetaQuotes'un yönetmeniyle tartışacak mısınız?

 
Mihail Matkovskij :

MetaQuotes'un yönetmeniyle tartışacak mısınız?

Anlaşmazlığımız yok.

 
Dmitry Fedoseev :
Yalnızca bir TextOut () çağrısının tamamen aptalca bir karşılaştırması bile, etikete metin çıktısı ile karşılaştırıldığında 70 kat daha yavaştır.

Bunun nedeni, grafiğin ayrı bir iş parçacığında çizilmesidir. OBJ_BITMAP_LABEL için piksel dizisini, onu kullanan uygulama ile aynı iş parçacığında işlerken ve pikselleri bitmap'e geçirirken. Bu nedenle, OBJ_BITMAP_LABEL , bitmap'i çok sık güncellemediğiniz sürece uygulamayı yavaşlatabilir, ancak önemli ölçüde değil. Sadece önceki testlerimde OBJ_BITMAP_LABEL aynı sebepten dolayı ciddi bir yavaşlama verdi. Ancak bitmap güncellemelerinin sıklığını sınırlarsanız, sonuç etiketlerden daha iyi olacaktır. Ve etiket güncellemelerinin sıklığını sınırlarsanız, bunlar OBJ_BITMAP_LABEL'den biraz daha hızlı çalışırlar (ayrı bir iş parçacığında çizim nedeniyle). Basitçe, nesneleri insan gözünün algılayabileceğinden daha sık güncellemenin bir anlamı yoktur. Bu nedenle, çok sık güncellendiklerinde grafiğin tüm nesneleri frenler.