Hatalar, hatalar, sorular - sayfa 2162

 
Artyom Trishkin :
enum bir tamsayı numaralandırmadır.
0,1,2,3 ..., vb. ...

İşlev şablonu şunları içeriyorsa

EnumToString();

Sorunlar ortaya çıkıyor...

 
Vladimir Pastushak :

İşlev şablonu şunları içeriyorsa

EnumToString();

Sorunlar ortaya çıkıyor...

Bir örnek gerekli.
 
Artyom Trishkin :
Bir örnek gerekli.

Bir tanesi şablon haline gelen bir aşırı yükleme yaptım ...

böylece sinekleri pirzolalardan ayırabildim ...

 
Vladimir Pastushak :

Bir tanesi şablon haline gelen bir aşırı yükleme yaptım ...

böylece sinekleri pirzolalardan ayırabildim ...

Sinekleri biliyorum, pirzolaları gördüm, ama sorun şu - fonksiyon kodu olmadan göremezsiniz.
 
Renat Fatkhullin :

Matematik optimizasyonu: sqrt yerine dizileri kullanmaya çalışmak.

bu yüzden basit bir diziden dizine göre eleman almak çok hızlı bir işlem olmalı, değil mi?

 
Комбинатор :

bu yüzden basit bir diziden dizine göre eleman almak çok hızlı bir işlem olmalı, değil mi?

Basit bir diziyi nerede görüyorsunuz?

Kontrol için tüm etkileri olan, yönetilen bir dilin dinamik bir dizisidir. Ve sqrt, tek bir yerel işlemci talimatıdır.


Optimizasyonların şaşırtıcı keşiflerinin ve her işlemci neslinde her durumda birçok faktörün etkisinin, önbellek boyutlarındaki her farkın, çoklu görevin, cezaların vb. dünyasına hoş geldiniz.

20 yıl önce bile bir 486 işlemcide montaj kodunu yalamakla meşguldüm ve talimatların yeniden düzenlenmesi, hizalanması ve bellekte tam olarak konumlandırılması nedeniyle sürekli olarak yüzde onlarca değişen hızlarla mücadele ediyordum. Çılgınca görünüyordu, ancak Intel ve Vtune kılavuzları daha sonra resmi açıkladı.

Ancak bugün optimizasyon sonuçlarıyla ilgili durum uzun zamandır kontrolden çıktı. Piyasada farklı önbelleklere sahip o kadar çok farklı işlemci var ki, kodunuzun farklı hızlarda çalışması garanti ediliyor. İşlemci önbellekleri ve işlemci mimarisinin büyük bir etkisi vardır. Kıyaslamadaki yüzde onlarca farkı ortadan kaldırmak için işlemcinin dinamik frekans kontrolünün bile devre dışı bırakılması gerekiyor.

Örneğin: Kesilmiş önbelleğe sahip atomlar iyi bir mimariye sahip gibi görünüyor veya boğulmuş U modelleri genellikle basit durumlarda bile katları daha düşük sonuçlar gösteriyor. Daha fazla önbellek özlüyor ve güle güle.

 
Artyom Trishkin :
Sinekleri biliyorum, pirzolaları gördüm, ama sorun şu - fonksiyon kodu olmadan göremezsiniz.
Aşırı yüklenmiş bir işlevin bir numaralandırması ve ardından bir dizesi varsa, bu işlevi bir integral için çağırırken bir sorun ortaya çıkar ...
 
Renat Fatkhullin :

Basit bir diziyi nerede görüyorsunuz?

Karmaşıklık sergilemek için doğru durum değil. Diziler her yerde kullanılır, göstergelerde bu ana hesaplama kısmıdır ve şimdi neredeyse doğrudan dizileri uygulamanızın yavaş olduğunu kabul ediyorsunuz.

Optimizasyonları çok daha iyi anladığınıza inanıyorum, ancak basit bir kullanıcı açısından her şey biraz garip görünüyor - MQL derleyicisinin C ++ hızıyla karşılaştırılabilir kod ürettiğini iddia ediyorsunuz, ancak aniden diziler ortaya çıkıyor. MQL'de hiç hızlı değil.
 
Комбинатор :

Karmaşıklık sergilemek için doğru durum değil. Diziler her yerde kullanılır, göstergelerde bu ana hesaplama kısmıdır ve şimdi neredeyse doğrudan dizileri uygulamanızın yavaş olduğunu kabul ediyorsunuz.

Doğrudan tek bir montajcı talimatıyla karşılaştırıldığında?

Evet, kolayca. Çeşitli matematiksel işlevlerin önceden hesaplanmış tablolarının uzun süredir işlemcilerde yerleşik olduğunun farkında değilsiniz. Ve pahalı işlemci matematik komutları, hızlandırmak için bunları kullanır.

Pazartesi günü, örneğinin ayrıntılı bir analizini yapacağız ve kesin nedeni öğreneceğiz.
 
Renat Fatkhullin :

Doğrudan tek bir montajcı talimatıyla karşılaştırıldığında?

en iyi ihtimalle bir dizi dizini , doğrudan tek bir montajcı talimatına da indirgenir, bu nedenle soru hala geçerli