Hatalar, hatalar, sorular - sayfa 2667
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Komut dosyası projesi için profil oluşturucunun sonucu yalnızca optimizasyonun kapalı olduğu durumlarda gösterdiği, optimizasyon açıksa her şeyin başlayacağı, çalışacağı, ancak sonuçsuz olduğu ortaya çıktı.
MT5 hatası (2345 derlemesi) uzun süredir profil oluşturucunun neden başladığını ve çalıştığını anlayamadı, ancak sonuçlar hiçbir yerde görüntülenmiyor.
Komut dosyası projesi için profil oluşturucunun sonucu yalnızca optimizasyonun kapalı olduğu durumlarda gösterdiği, optimizasyon açıksa her şeyin başlayacağı, çalışacağı, ancak sonuçsuz olduğu ortaya çıktı.
Profil oluşturucu tüm göstergeler için çalışmaz (optimizasyon olmadan). Forumda iki kez yazdım, kodu LAN'daki geliştiricilere attım - cevap yok.
Kabaca konuşursak, sonuçta aynı sonucu veren iki algoritmanın neden farklı hızlarda yürütüldüğüyle ilgilendim , optimizasyon modunda 1,7 kat düşüş.
Sonuç olarak, MT5 profil oluşturucu ile pratik deneyim elde edildi ve çalışmasında bir takım kusurlar bulundu.
Geliştiricilerin bu bilgilerle ilgilenip ilgilenmediği açık olmadığından ve hataları yerelleştirmek için saatlerce zaman harcamak istenmediğinden, yalnızca bulunan sorunlar hakkında kısa bilgiler verilecektir:
1) Farklı algoritmaların hızlarını karşılaştırmanın bir yolu yoktur.
Bu nedenle, hem optimizasyon etkinleştirilmiş hem de etkinleştirilmemiş olarak diğerlerinden üç kat daha hızlı olan bir algoritma, profil oluşturucudaki en yavaş olabilir.
Görünüşe göre, profil oluşturucu tarafında algoritmaların yürütme süresini etkileyen bir tür ek yük var, bu durumda profil oluşturucudaki algoritmaların hızını karşılaştırmanın bir anlamı yok.
2) Ekrandaki histogram araç ipuçlarında Yanlış Sayım değeri.
Profil oluşturucu, fonksiyonun beklendiği gibi 20K değil 80K kez çalıştırıldığını yazar, benzer şekilde farklı satırlar için fonksiyonun içinde bazen, bazı satırlar için üç kez, diğerleri için iki kez Count fazlalığı vardır.
3) Ekrandaki histogram araç ipuçlarında Yanlış Zaman değeri.
Profil oluşturucunun, algoritmanın zamanın% 99,90'ına girdiğini gösterdiği durumlar vardır, ancak gerçekte 20K'da yalnızca bir kez geçtiği ortaya çıktı.
Bu bir hata değil, bir not!
mt 5 yapı 2340.
Dün Veri Kataloğu'nu açtıktan sonra Göstergeler klasörünün Uzmanlar klasörüne nasıl taşındığını fark etmedim. Sonra MT5'i kapattım ve bugün açtım, göstergeler Navigator'dan da hiçbir şey olmamış gibi kullanılabilir. Ancak, Veri Kataloğu'nu tekrar açarsanız, orada Göstergeler boş bir klasör belirir ve içine zaten bir gösterge atarsanız. O zaman artık Gezgin'de görünmeyecektir. Göstergeler klasörünü MQL5\Indicators'a geri döndürmek sorunu çözer.
MT5 (derleme 2347) ArrayResize kullanarak diziye bir öğe eklerken, bunlar için bellek önceden ayrılmışsa neden bu kadar büyük bir ek yük?
Lütfen ArrayResize kullanarak dahili rezervasyon algoritmasını iyileştirmeyi düşünün.
Örneğin, sınıflar için, yapıcıyı çağırmanın yanı sıra, bir tür "listelerde dahili kayıt" gerçekleştirdiklerini varsayabilirsiniz.
ArrayResize kullanarak rezervasyonun bir parçası olarak, doğrudan bellek ayırmaya ek olarak, süreci optimize etmeyi deneyebilirsiniz:
- oluşturulan komşu bir öğeden veri alın (örneğin, sanal işlevler tablosuna bir işaretçi);
- henüz oluşturulmamış sınıfların "iç kaydı" için avans veya alan ayırma;
MT5 (derleme 2347) ArrayResize kullanarak diziye bir öğe eklerken, bunlar için bellek önceden ayrılmışsa neden bu kadar büyük bir ek yük?
Bu bile yardımcı olmuyor.
Biraz saçmalık. Fren ivmesi yerine.
ZY Bu garip, Documentation zero'dan bir örneğin yürütülmesinin sonucu.
MT5'te profil oluşturucu ile çalıştı (2345 yapı),
Kabaca konuşursak, sonuçta aynı sonucu veren iki algoritmanın neden farklı hızlarda yürütüldüğüyle ilgilendim , optimizasyon modunda 1,7 kat düşüş.
...
MT5 (derleme 2347) ArrayResize kullanarak diziye bir öğe eklerken, bunlar için bellek önceden ayrılmışsa neden bu kadar büyük bir ek yük?
Karşılaştırmak isterseniz şöyle olmalı:
Karşılaştırmak isterseniz şöyle olmalı:
Benim açımdan, ne karşılaştırılmalıydı.
Diziye kaç elemanın yerleştirileceğini biliyorum ve hepsini bir kerede oluşturmak yerine, oluşturulmamış olanlar için bellek ayırıyorum.
Sorun şu ki, eğer bellek ayırırsam ve dizi öğelerini birer birer oluşturursam, o zaman her şeyi bir kerede oluşturmaktan çok daha fazla zaman alır.
Yani yapılar için - 7 kat daha yavaş.
Ve veri türleri için sınıf ve int iki kat daha yavaştır.
Bu çok büyük bir fark, bana öyle geliyor ki, istenirse geliştiriciler ortadan kaldırabilir.