Kötü değil, kendi başına. Ama.
1. Hata ayıklama sırasında çok yardımcı olanassertion'lar (iddialar) hakkında tek bir kelime bile yok.
2. En hafif tabirle izleyici tartışmalı.
3. Optimizasyon (derleyicinin) nedeniyle, inlining nedeniyle basit fonksiyonlar için hata ayıklamanın çok zorlaştığından bahsedilmeli ve bu dezavantajı aşmanın yolları önerilmelidir.
Kötü değil, kendi başına. Ama.
1. Hata ayıklama sırasında çok yardımcı olan assertion'lar (iddialar) hakkında tek bir kelime bile yok.
2. En hafif tabirle izleyici tartışmalı.
3. Optimizasyon (derleyici) nedeniyle hata ayıklamanın inlining nedeniyle basit fonksiyonlar için çok zor olduğundan bahsedilmeli ve bu dezavantajı aşmanın yolları önerilmelidir.
3. Optimizasyon (derleyici) nedeniyle hata ayıklamanın inlining nedeniyle basit fonksiyonlar için çok zor olduğunu belirtmek ve bu dezavantajı aşmanın yollarını önermek gerekir.
Hata ayıklayıcıda, inlining tamamen devre dışıdır ve izlenecek yol tamamen olduğu gibi kaynak kodu ile yapılır.
Son derlemelerin profilleyicisinde, raporların kalitesini düşüren kontrol noktası ile ilgili bir sorun vardı, ancak düzeltildi ve önümüzdeki hafta bir sonraki derlemede daha ayrıntılı raporlara sahip yeni bir sürüm mevcut olacak.
Ancak burada yazılanlar temelde yanlıştır:
Хочу отдельно отметить, что компилятор MetaEditor транслирует программы в байт-код, а не нативный код (подробнее читаем по ссылке). Это дает возможность создавать защищенные шифрованием программы, не боясь взлома. Также преимуществом такой трансляции является то, что байт-код может быть запущен как в 32-х битной версии операционной системы, так и в 64-х битной.
Derlemenin ilk aşamasında, evrensel bir bayt kodu saklanır, ancak terminalde çalıştırıldığında, bu bayt kodu ek optimizasyon ile tamamen %100 yerel 32 veya 64 bit koda çevrilir. Yerel koda çeviri sayesinde MQL5 programlarının yürütme hızını MQL4'e kıyasla katladık.
Yerel koda çevirisi olmayan saf bayt kodu MQL4'teydi.
Hata ayıklayıcıda, inlining tamamen devre dışıdır ve izlenecek yol tamamen olduğu gibi kaynak kod üzerindedir.
Ne zamandır böyle? Eskiden büyük bir sorundu. 5k'da çalışmayalı uzun zaman oldu.
Başından beri.
Inlining fonksiyonların çoğunu yiyor ve bununla hata ayıklamak teorik olarak bile imkansız olurdu. Belki de sadece hata ayıklayıcının ilk sürümleriyle çalıştınız, burada bir dizi sorun vardı.
Ve ot bitiminde veya piyasa ile bağlantı olmadan hata ayıklama için? Çözümünüz var mı? Çünkü hata ayıklayıcı ile "OnTick" den sonra bir sorun var, MT4'te bir"Tick generator" var, mt5'te böyle bir şey var mı?
Şimdiden teşekkürler,
Tekliflerin geliş sürecinin uzun olması ve gerekli grafik bölümü nedeniyle gerçek zamanlı otaldka'yı pratikte kullanmıyorum.
Print'i eski şekilde itmek ve test cihazında izlemek zorundayım.
Yine de yerel hata ayıklayıcı Visual Studio'dan önce hiç kalkmıyor. Bir değişkene işaret edersiniz ve size bir değer verir, a+b /s gibi bir ifadeye işaret edersiniz ve sonuç açılır. ME'de Print'i kullanmak daha kolaydır.
MT4 yükseltmesini bitirir bitirmez hata ayıklayıcıyı kesinlikle geliştireceğiz.
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Yeni makale MQL5 Programlarında Hata Ayıklama yayınlandı:
Bu makale öncelikle dili öğrenmiş, ancak henüz program geliştirme konusunda tam olarak uzmanlaşmamış programcılara yöneliktir. Bazı hata ayıklama tekniklerini açıklar ve yazar ile diğer birçok programcının birleşik tecrübesini sunar.
Profil oluşturucu kodu hata ayıklayıcı için önemli bir eklentidir. Aslında bu, program hata ayıklamasının, bunun optimizasyonundan oluşan son aşamasıdır.
Profil oluşturucu, MetaEditor 5 menüsünden "Profil oluşturmayı başlat" düğmesine tıklanarak çağrılır. Hata ayıklayıcının sunduğu adım adım program analizi yerine, profil oluşturucu programı yürütür. Bir program bir gösterge veya bir Uzman Danışman ise, profil oluşturucu program kaldırılana kadar çalışacaktır. Kaldırma, grafikten bir gösterge veya bir Uzman Danışman kaldırılarak ve "Profil oluşturmayı durdur" tıklanarak gerçekleştirilebilir.
Profil oluşturma bize önemli istatistikler sağlar: her bir fonksiyonun kaç kez çağrıldığı, yürütülmesi için ne kadar zaman harcandığı. Belki yüzde cinsinden istatistikler biraz kafanızı karıştıracaktır. İstatistiklerin iç içe geçmiş fonksiyonları dikkate almadığını anlamak gerekir. Bu nedenle, tüm yüzde değerlerinin toplamı %100'ü büyük ölçüde aşacaktır.
Ancak, profil oluşturucu, kullanıcıların hız için hangi fonksiyonun optimize edilmesi gerektiğini ve nerede bellekten biraz tasarruf edebileceklerini görmelerine izin verecek şekilde programları optimize etmek için halen güçlü bir araç olarak kalmaktadır.
Yazar: Nikolay Demko