MQL4 ve MQL5'te Rakamları () atlayarak herhangi bir sayıdan (sadece tırnak işaretleri değil) sonra ondalık basamak sayısını alma - sayfa 14
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
Bir dizi yapıyı (uzunluk, sizeof(int)'nin katıdır) bir int[] ve geri dizisine çevirmenin hızlı bir uygulaması hakkında beyin fırtınası yapabilir miyim?
Pratik uygulama - kaynaklar aracılığıyla hızlı veri alışverişi. Sürümüm çok yönlü, bu yüzden yavaşlıyor.
MT5'in bu tür işlevleri vardır
MT4'te bunlara sahip değil ve muhtemelen olmayacak. Bu nedenle, sorunu bu işlevlerle (yararlıysa) ve onlarsız çözmeniz gerekir.
Sonuç, burada çok sayıda forum kullanıcısı için faydalı olacaktır.
Soruna benim çözümümün zaten mevcut olduğu en basit beyin fırtınası şablonunu yazdım
Sonuç
Sonuç
İkinci seçenekten çok daha hızlı bir şey. Muhtemelen hızlanmaz.
bir dizi yapıyı (uzunluk, sizeof(int)'nin bir katıdır) bir int[] dizisine ve geri aktarmanın hızlı uygulanması ?
Bunun gibi bir şey
Bunun gibi bir şey
Harika bir iş çıkardın! Kodu inceleyeceğim, teşekkürler.
ZY Benzer, ArrayCopy - bu hala bir fren.
ZYY Baştan sona çok farklı sonuçlar çıkıyor. Örneğin, Testlerin sırasını değiştirirseniz, her şey neredeyse tersine döner. Görünüşe göre, daha objektif bir hız ölçümüne ihtiyacımız var.
ZY Benzer, ArrayCopy - bu hala bir fren.
Az sayıda öğeyi kopyalamanın gerekli olduğu bazı yerel görevleri ölçtüğümü hatırlıyorum. 16 öğeye kadar, for döngüsü ArrayCopy'den belirgin şekilde daha hızlı çalıştı, daha fazla öğe olduğunda ArrayCopy daha hızlı çalıştı. Ve elbette, döngüsüz seçenek en hızlı şekilde çalışır (son sayfadaki işlevlerimin türü hakkında)
en hızlı seçenek döngüler olmadan çalışır (son sayfadaki işlevlerimin türü hakkında)
anlamadım
anlamadım
Demek istediğim bu, for(int i=0; i<5; i++) dst[i]=src[i]; dst[0]=src[0];dst[1]=src[1];dst[2]=src[2];dst[3]=src[3];dst[4]=src [4'ten daha yavaş ];
döngü kontrolü ile ilgili ek işlemler açısından oldukça açık olan)
Ve CopyArray, az önce kontrol ettiğim gibi, her iki seçenekten de çok daha hızlı çalışıyor, öyle görünüyor. Belki duruma göre değişir tabii.
Evet, bu çok daha hızlı çalışacaktır (mümkün olduğunda ArrayCopy ile değiştirilir, gerisi aynıdır):
Aklıma gelen ilk şeyi denemeden yazdığımı söylüyorum))
Ve CopyArray, az önce kontrol ettiğim gibi, her iki seçenekten de çok daha hızlı çalışıyor gibi görünüyor. Belki duruma göre değişir tabii.
ArrayCopy(), Sish'in memmove() ilkesine göre yapılırsa,
o zaman, ArrayCopy () hızının bellek ayırma hızına bağlı olduğunu düşünüyorum, eğer kopyalama için ara ara belleğin belleği hazırsa, bellek tahsis edilmemişse ArrayCopy () çok hızlı bir şekilde yürütülür, ardından istekler işletim sistemine bellek ayırmaya başlayacak
test etmeyi deneyebilirsiniz - büyük miktarda veri içeren ArrayCopy() öğesine bir çağrı yapın, böylece arabelleği değiş tokuş için hazırlayın ve ardından kopyalamak ve hızı ölçmek için daha küçük miktarlarda veri içeren ArrayCopy() ile bir döngü oluşturun