Hatalar, hatalar, sorular - sayfa 977

 
Renat :
hiçbir GDI yöntemi çağrılmaz.

TextOut'tan bahsediyorum. O sistemli değil mi?

etiket konusunda net, hiçbir şekilde GDI ile ilişkilendirmiyorum

 
voix_kas :

Metin, göstergenin açıklamasını değil, değerini göstermek üzere tasarlanmış etiketlerin tümünde (yarısında) değişir. Komut dosyasını çalıştırdığınızda görebilirsiniz.

Ya ben seni anlamadım Hangi özel çizgiden bahsediyorsun?

Üzgünüm, cep telefonumda yanlış yere bakıyordum ve bir hata yaptım.

Önümüzdeki birkaç saat içinde kendi testlerimi yapacağım, kaynak kodunu ve ayrıntılı sonuçları yayınlayacağım.

 
sergeev :

TextOut'tan bahsediyorum. O sistemli değil mi?

etiket konusunda net, hiçbir şekilde GDI ile ilişkilendirmiyorum

GDI'nin etiketlerden bahsettiğini sanıyordum.

Etiket parametrelerinin değiştirilmesi, nesne verileri çizilene veya geri okunana kadar, bu verileri gerçek nesnelere (nesneler MQL5'e değil, grafiğe aittir) uygulamadan, hızlı ateşlenen özel bir kuyruğa bir komut akışının özellikle büyük bir şekilde doldurulmasıdır. Yani, nesnelerin gerçek modifikasyonu ertelenir. Geliştiricilerin on binlerce nesneyle frensiz çalışabilmesi için bu optimizasyonu özel olarak uyguladık.

Yani, nesneleri değiştirirken, gerçek yürütme ertelenir ve bu da bir hız hissi verir. Eh, tüm oluşturma yükü, uygulamanın arayüz (grafik) iş parçacığına aktarılır. Ayrıca, oluşturma sırasında, optimizasyon yöntemleri ve görünürlük sınırlarının kesilmesi çalışır, bu da grafikteki 300.000-500.000 nesneyle normal şekilde çalışmanıza olanak tanır.

Ancak bitmap'lerle çalışırken, tüm işler gecikmeden MQL5'te anında gerçekleşir, ancak daha sonra çizim yaparken her şey anında gerçekleşir. Sonuç olarak, bitmap'in "değiştirme + oluşturma" süresinin belirli sayıda nesneyle daha hızlı olması muhtemeldir. Özellikle bitmap'in çağrılar arasında kaydedildiğini ve yalnızca ihtiyacınız olanı çizebileceğinizi ve tüm tuvali yeniden oluşturamayacağınızı düşünürsek.

Nesnelerin ve bitmap'lerin farklı modlarda nasıl çalıştığını gösteren ayrıntılı testler yapacağım ve sonuçları yayınlayacağım.

 

Test sonuçlarını ayrı bir başlıkta yayınladım: Grafikte ayrı metin etiketleri ve bitmap'lerle performans testi

Yazarın, bitmap'lerle çalışırken komut dosyasında ciddi bir kusuru vardı - gerçekte, bir yerine iki bitmap kullandı ve bunları sürekli olarak birbirine kopyaladı, bu da performansı düşürdü.

 
Renat :

Test sonuçlarını ayrı bir başlıkta yayınladım: Grafikte ayrı metin etiketleri ve bitmap'lerle performans testi

Yazarın, bitmap'lerle çalışırken komut dosyasında ciddi bir kusuru vardı - gerçekte, bir yerine iki bitmap kullandı ve bunları sürekli olarak birbirine kopyaladı, bu da performansı düşürdü.

Onlar. gerçek bilgi çıktısını hızlandırmanın bir yolu bir kusur mu? :)

Burada daha önce tuval şablonunun ve çalışma tuvalinin tanıtılma amacını tanımlamıştım.

 

Uzun yaşayalım.

MQL5 başvurusu, https://www.mql5.com/ru/docs/basis/types/integer/datetime tarih saat türünü belirtir:

"Değer aralığı 1 Ocak 1970 ile 31 Aralık 3000 arasında."

aslında 32535244799'daki maksimum değer 3001.01.01 07:59:59

Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Тип datetime - Документация по MQL5
 
Test performansa dayalıdır, bu nedenle ek işlemlerle tıkanmamalıdır.
 

Programlamanın saflığını geliştirmek adına, halka bunu sormak istiyorum.

Diyelim ki küresel düzeyde ilan edilen belirli bir bayrak (bool Bayrağı) var. Belirli olaylar/koşullar meydana geldiğinde, belirli bir değerin ayarlanması gerekir.

İlk seçenek:

 if (некое условие) {
  Flag = false;
}

İkinci seçenek:

 if (некое условие) {
   if (Flag) Flag = false ;
}

Seçeneklerden hangisi:

1. Performans açısından daha mı hızlı?

2. Eğer öyleyse, "daha profesyonel"?

Kontrolün, örneğin her tick gibi bu kod bölümüne oldukça sık düşeceği varsayılmaktadır.

 
voix_kas :

Programlamanın saflığını geliştirmek adına, halka bunu sormak istiyorum.

Diyelim ki küresel düzeyde ilan edilen belirli bir bayrak (bool Bayrağı) var. Belirli olaylar/koşullar meydana geldiğinde, belirli bir değerin ayarlanması gerekir.

Tabii ki ilk seçenek daha hızlı. Daha az talimat ve bir daha az karşılaştırma/dal.
 
Renat :
Tabii ki ilk seçenek daha hızlı. Daha az talimat ve bir daha az karşılaştırma/dal.
Teşekkür ederim.
Neden: