Bu arada, yaklaşık sıfır. FastLog2'de sıfır kontrolü yoktur, bu da buna göre avantajlı bir başlangıç sağlar. Ancak, doğru bir şekilde test edilirse, yine de log2'den bir buçuk ila iki kat daha yavaştır)
Bu arada, yaklaşık sıfır. FastLog2'de sıfır kontrolü yoktur, bu da buna göre avantajlı bir başlangıç sağlar. Ancak, doğru bir şekilde test edilirse, yine de log2'den bir buçuk ila iki kat daha yavaştır)
Hayır, elbette, boş denetim log2'den kaldırılmalı veya aynısı FastLog2'ye eklenmelidir.
Soru, gerçekten de, hesaplama bölümünün hızında. log2'de her şey saf kaymalar ve eklemeler olarak sayılır. FastLog2'de - çarpmanın dahil olduğu zorlu dönüşümlerden sonra bir tablo değeri kullanıldı. Bu kod çok eski, matematiksel yardımcı işlemcilerin olduğu günlerde kullanılıyordu, o zamandan beri durum tamamen değişebilirdi.
C++ ile kontrol edildi. Evet, FastLog2 gerçekten en hızlısı çalışıyor. Bu gerçekten zor bir kod) Belki de nedeni, bit işlemlerinin karşılaştırma işlemlerinden çok daha hızlı olmasıdır.
MT4'teki tüm kodları kontrol ettim. MT4'te derleyici optimize etmez (yani, toplamlı değişken, toplamsız orijinal değişkenimle aynı göreli sonuçları gösterir) ve MT4'te log2, FastLog2'den daha hızlıdır. Ve MT5'te optimizasyon zaten toplama yapılmadan gerçekleştirilir (yani kod görünüşte tam olarak yürütülmez) ve FastLog2 seçeneği log2'den daha hızlı çalışır. Bundan hangi özel sonuçların çıkarılabileceğini bilmiyorum, çünkü kod iyileştiricinin orada ve orada nasıl çalıştığına dair hiçbir ayrıntı yok.
Bu, MQL5'in standart davranışıdır: statik değişkenler, global olanlardan sonra çalışmaya başlar.
Her statik sınıf/yapı değişkeninin yapının kendisinden sonra ikinci kez bildirilmesinin nedeni bu mu? Üstelik herhangi bir değer atamadan bile... Belki de derleyicinin tüm bunları otomatik olarak yapması için bir öneride bulunmaya değer mi?
Aslında, bu bir hatadır, program kodunun yürütme sırasının ihlalidir. Derleyici prensipte buna izin vermemelidir. Geliştiricileri bu konuda daha sık çekmemiz gerekiyor.
C++'da kod, derleyici tarafından kesinlikle yukarıdan aşağıya işlenir, bu nedenle yukarıdan her şey zaten başlatılmıştır. Ve dibe gidemezsin. Bu nedenle, her şey açıktır. Ve geliştiriciler burada kendilerine ait bazı kurallar koyduklarından, doğru kod yürütme sırasını sağlamalarına izin verin.
C++'da kod, derleyici tarafından kesinlikle yukarıdan aşağıya işlenir, bu nedenle yukarıdan her şey zaten başlatılmıştır. Ve dibe gidemezsin. Bu nedenle, her şey açıktır.
Bu arada, yaklaşık sıfır. FastLog2'de sıfır kontrolü yoktur, bu da buna göre avantajlı bir başlangıç sağlar. Ancak, doğru bir şekilde test edilirse, yine de log2'den bir buçuk ila iki kat daha yavaştır)
Ve yanlışlık nedir?
Sonuçta, test sürümünüz bile şunları üretir:
Bu arada, yaklaşık sıfır. FastLog2'de sıfır kontrolü yoktur, bu da buna göre avantajlı bir başlangıç sağlar. Ancak, doğru bir şekilde test edilirse, yine de log2'den bir buçuk ila iki kat daha yavaştır)
Hayır, elbette, boş denetim log2'den kaldırılmalı veya aynısı FastLog2'ye eklenmelidir.
Soru, gerçekten de, hesaplama bölümünün hızında. log2'de her şey saf kaymalar ve eklemeler olarak sayılır. FastLog2'de - çarpmanın dahil olduğu zorlu dönüşümlerden sonra bir tablo değeri kullanıldı. Bu kod çok eski, matematiksel yardımcı işlemcilerin olduğu günlerde kullanılıyordu, o zamandan beri durum tamamen değişebilirdi.
Bu, MQL5'in standart davranışıdır: statik değişkenler, global olanlardan sonra çalışmaya başlar.
Bu konuda çok ciddi olabilirsiniz.Bu, MQL5'in standart davranışıdır: statik değişkenler, global olanlardan sonra çalışmaya başlar.
Her statik sınıf/yapı değişkeninin yapının kendisinden sonra ikinci kez bildirilmesinin nedeni bu mu? Üstelik herhangi bir değer atamadan bile... Belki de derleyicinin tüm bunları otomatik olarak yapması için bir öneride bulunmaya değer mi?
Aslında, bu bir hatadır, program kodunun yürütme sırasının ihlalidir. Derleyici prensipte buna izin vermemelidir. Geliştiricileri bu konuda daha sık çekmemiz gerekiyor.
C++'da kod, derleyici tarafından kesinlikle yukarıdan aşağıya işlenir, bu nedenle yukarıdan her şey zaten başlatılmıştır. Ve dibe gidemezsin. Bu nedenle, her şey açıktır. Ve geliştiriciler burada kendilerine ait bazı kurallar koyduklarından, doğru kod yürütme sırasını sağlamalarına izin verin.
C++'da kod, derleyici tarafından kesinlikle yukarıdan aşağıya işlenir, bu nedenle yukarıdan her şey zaten başlatılmıştır. Ve dibe gidemezsin. Bu nedenle, her şey açıktır.
Daha az esneklik.