Hatalar, hatalar, sorular - sayfa 2878
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
optimize ederken hangi dönüştürme seçeneğinin daha hızlı çalışacağı
Bu, tüm geçiş için yalnızca bir kez arayacaktır. Bu nedenle, önemli değil.
Bu, tüm geçiş için yalnızca bir kez arayacaktır. Bu nedenle, önemli değil.
yani evet ... ama bilgisayarı birkaç gün optimizasyon için çalıştıracağım, bir şekilde performansı ölçmek istiyorum ..... seçenek 1'in daha verimli olacağından şüphelensem de, hayır olmayacak dizilere 100500 kez kopyalama
yani evet ... ama bilgisayarı birkaç gün optimizasyon için çalıştıracağım, bir şekilde performansı ölçmek istiyorum ..... seçenek 1'in daha verimli olacağından şüphelenmeme rağmen, hayır olmayacak dizilere 100500 kez kopyalama
union dizilere kopyalama yapmıyor, aynı bellek alanının farklı bir yorumu. bu nedenle büyük olasılıkla 2. seçenek daha hızlıdır, ancak yukarıda belirtildiği gibi önemli değil.
yani evet ... ama bilgisayarı birkaç gün optimizasyon için çalıştıracağım, bir şekilde performansı ölçmek istiyorum ..... seçenek 1'in daha verimli olacağından şüphelenmeme rağmen, hayır olmayacak dizilere 100500 kez kopyalama
hızı ölçmenin eski bir yolu var
modaya uygun
for (int i=0; i< 1000000; i++) {kodumuz1}....
for (int i=0; i< 1000000; i++) {kodumuz2}....
Sendika göründüğü kadar hızlı değil. İlkine bahse girerim.
Ben de ilk sıraya koydum! ikili operatörler, if operatöründen birkaç kat daha hızlıdır, ancak ikincisi buna sahip değildir.
kontrol:
2020.10.15 21:48:01.401 HızTst (EURUSD,H1) tst1 : : döngüler=10000000000 ms=10864370
2020.10.15 21:48:12.264 HızTst (EURUSD,H1) tst2 : : döngüler=10000000000 ms=10862287
önemli bir fark değil, testleri değiştirirseniz sonuçların tam tersi olması kuvvetle muhtemeldir.
genellikle kritik değildir.
önemli bir fark değil, testleri değiştirirseniz sonuçların tam tersi olması kuvvetle muhtemeldir.
derleyicinin her iki durumda da aynı kodu oluşturma olasılığı yüksektir. bu durumda, subjektif olarak neyi sevdiğinizi seçin
kontrol:
2020.10.15 21:48:01.401 HızTst (EURUSD,H1) tst1 : : döngüler=10000000000 ms=10864370
2020.10.15 21:48:12.264 HızTst (EURUSD,H1) tst2 : : döngüler=10000000000 ms=10862287
önemli bir fark değil, testleri değiştirirseniz sonuçların tam tersi olması kuvvetle muhtemeldir.
genellikle kritik değildir.
Rastgele sayılar oluşturma zamanının düzensiz olabileceğini ve birçok şeyin oluşturulan değişkenlerin hacmine bağlı olduğunu gösteren bir komut dosyası gibi)))
Ve bu kadar çok tekrarda ihtiyacımız olan kod beni 0 ms alıyor.
cevap hayır
veya kod iyileştirici gereksiz bir şeyi keserİşte rastgele sayılar üretme zamanının düzensiz olabileceğini gösteren bir komut dosyası
no rand() normal bir işlevdir, her zaman aynı şekilde çalışır
ancak işin hızını test ederken sabitlerle başlatırsanız, testler yürütüldüğünde "hızlandırılır" - kod optimizasyonu çalışma zamanında MQL'de kötü çalışmıyor
genel olarak, bu bir kereden fazla kontrol edilir
ve birçok şey oluşturulan değişkenlerin hacmine bağlıdır)))
Tabii ki, bellek tahsisi çalışma zamanı açısından pahalı, zaten kontrol ettim, dinamik olarak oluşturulan nesneleri (pointer new) ve sadece yerel kapsamdaki nesneleri test ettim, 100500 kez test ederken, zaman yeni + silmeye kadar ilerliyor
bir bütün olarak soru, değişkenler için küresel görünürlükteki test cihazında belleğin bir kez tahsis edilmesi ve her geçişte değil - ancak uint dizilerine ihtiyacım olması nedeniyle, böyle bir komut dosyasıyla test ettim ve yazdığım gibi değil ilk kez
Ve bu kadar çok tekrarda ihtiyacımız olan kod beni 0 ms alıyor.
cevap hayır
veya kod iyileştirici gereksiz bir şeyi keserbenim senaryomla test ettin mi? - ya testin sonunu beklemedi ve iptal edildi ya da ulong taştı - makronun ilk parametresi 10^ sayısı
derleyicinin her iki durumda da aynı kodu oluşturma olasılığı yüksektir. bu durumda, subjektif olarak neyi sevdiğinizi seçin
evet, belki öyle
burada, genel olarak, soru neydi - talimat boru hattının optimizasyonu nedeniyle modern işlemcilerin bir döngüde birden fazla temel işlemi gerçekleştirebileceğini defalarca okudum .... çok fazla bla-bla-bla .. . ve mesele şu ki, işlemci öngörülemeyen sayıda döngü için aritmetik komutları yürütür.
ancak dallanma ve bellek ayırma işlemleri işlemci tarafından çok zayıf bir şekilde optimize edilmiştir, bu nedenle aritmetiği basitleştirmede optimizasyon aramayın, minimum dallarla mümkün olduğunca doğrusal kod yazmaya çalışın ve değişkenleri bildirmek ve değerler atamak daha iyidir komut hattı ve önbellek getirme tahmininin bu kodu optimize etmesini sağlayan hesaplamalardan hemen önce onlara
onlar. büyük olasılıkla, dizideki (adresleme) öğelerin değerlerinin seçimi de hız açısından kritik olmayacak - burada birliğe karşı bir vardiya kazancı olacağını düşündüm, hiçbir fark olmadığı ortaya çıktı Tümü