Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
İkinci durumda, mikroskobik bir döngü gövdesiyle, doğal olarak zamanın yarısını alan ve ikiye katlayan bir bağlantı yoluyla dolaylı erişim vardır.
Benim düşünceme göre, bir nesne üyesine doğrudan erişimin ilk durumunun yalnızca bir optimizasyonu var.
İkinci durumda, mikroskobik bir döngü gövdesiyle, doğal olarak zamanın yarısını alan ve ikiye katlayan bir bağlantı yoluyla dolaylı erişim vardır.
Renat, gerçek hayatta büyük miktarda veri işlenir. Sorunlu alanı göstermek için testi zaten basitleştirdim. Başlangıçta, dizilerimde ve sınıflarımda yaptım. Sonra onu bir şemaya böldüm.
yani, aslında, yalnızca bir arr nesnemiz değil, bir dizi karmaşık nesneye (ayrıca dizilerle birlikte) sahibiz.
Bu kabaca bir diyagramda şu şekilde yazılabilir:
A dizisinin belirli bir öğesine bir başvuru alırsanız
daha sonra A::prmX parametreleriyle çalışmak daha hızlı olacaktır.
Ama dizi isimlerinden sosis çekmenin
_b[i]._a[j] .prmX
belirli bir öğeye erişmekten en az iki kat daha hızlı çalışır.
Bu beni biraz şaşırttı ve çekirdekte bir tür sözde işaretçinin alınmakta olduğu ortaya çıktı.
En azından hız farkını azaltan hızı bir şekilde optimize etmek mümkün mü?
hatasız böyle oluyor
Bu testte herhangi bir hata olmayacaktır. Ancak bu yöntem temel soruyu çözmez: derleyici neden herhangi bir hata ve/veya uyarı vermeden bir nesne sabit referansını sabit olmayan bir referansa dönüştürmeyi atlar. Eğer bu böyle bir özellikse, soru yoktur, ancak sınıf yöntemlerinin imzasındaki dönüş türü için const değiştiricisinin anlamı kaybolur.
Bence hepsi mantıklı.
const nesnesinin işlevleri nesnenin kendisini değiştirmemelidir, bu nedenle const değiştiricisine de sahip olmalıdırlar.
ama hakkında
//Ошибки нет. Это НЕ правильно(CONST A* B::getA())! A* a2 = b.getA();
Evet, buna C++'da izin verilmez. bir hata olacak.
servis masasına yazın.
Ama dizi isimlerinden sosisleri çekmenin
belirli bir öğeye erişmekten en az iki kat daha hızlı çalışır.
Gerçekten daha hızlı çıktı mı yoksa çıktının diğer basit durumlara dayalı mantıklı bir yapısı mı?
Benim düşünceme göre, çok boyutlu bir diziye sunulan erişime dayalı hiçbir saf kanıt henüz sunulmamıştır. Özellikle açıkçası pahalı olan ek GetPointer işlevi göz önüne alındığında.
Bu beni biraz şaşırttı ve çekirdeğe bir tür sahte işaretçinin alınmakta olduğu ortaya çıktı.
En azından hız farkını azaltan hızı bir şekilde optimize etmek mümkün müdür?
Sürekli olarak optimizasyon üzerinde çalışıyoruz, ancak bağlantılar / tutamaçlar söz konusu olduğunda dolaylı erişimde bir sistem ek yükü var.
Her durumda, bu erişimi optimize etmeye daha yakından bakacağız.
Gerçekten daha hızlı çıktı mı yoksa çıktının diğer basit durumlara dayalı mantıklı bir yapısı mı?
evet, hepsi çok gerçek. dizilerini doldurma konusunda test edildi. her zaman iki kat daha yavaş çıktı.
Benim düşünceme göre, çok boyutlu bir diziye sunulan erişime dayalı hiçbir saf kanıt henüz sunulmamıştır.
Pekala, uygulanması için şemayı ve A, B sınıfı ve dizilerin görüntüsünü hazırladım.
Özellikle açıkçası pahalı olan ek GetPointer işlevi göz önüne alındığında.
döngüye girmeden önce bir kez çağrılır. ancak prensipte, daha doğru bir test için GetTickCount'tan da çıkarabilirsiniz.
TAMAM. teşekkür etmek. gereken budur.
döngüye girmeden önce bir kez çağrılır. ancak prensipte, daha doğru bir test için GetTickCount'tan da çıkarabilirsiniz.
Dilek. Metnin ölçeğini artırma yeteneğini yardıma dahil etmek mümkün mü? Örneğin. + veya - veya Ctrl+fare tekerleği.
Büyük olasılıkla bu imkansız. Çevrimiçi sürüm çalışmıyor mu?
İşte internette bu konuyla ilgili bulduklarım - http://forum.ru-board.com/topic.cgi?forum=62&topic=20907
GÜNCELLEME Daha Fazla http://forum.ixbt.com/topic.cgi?id=23:39211