Değişkenleri bir döngünün arkasında mı yoksa bir döngünün içinde mi bildiriyorsunuz? - sayfa 3

 
Aleksandr Matveev :

Bu ifadenin yazarının işlemcinin, belleğin ve derleyicinin nasıl çalıştığının hiç farkında olmadığına dair bir şüphem var ...

Bence bu yorumu yazan kişi o kadar dikkatsiz ki konunun özünü anlamamış.

Ve işte bellek ve işlemci, soru MQL5'teki optimizasyonla ilgiliydi, daha dikkatli okumanız gerekiyor

Not: Boş zamanlarınızda eğlenceli bir küçük kitap okuyun " Dikkat geliştirme tekniği, Andreev O.A., 2007 "

Техника развития внимания, Андреев О.А., 2007
Техника развития внимания, Андреев О.А., 2007
  • 2018.04.27
  • nashol.com
Смотреть, читать и скачать бесплатно pdf, djvu и купить бумажную и электронную книгу по лучшей цене со скидкой: Техника развития внимания, Андреев О.А., 2007. Настоящая книга написана по Программе интеллектуального и духовного развития личности Школы Олега Андреева. Она посвящена тренировке внимания. Можно использовать книгу как часть Программы или как самостоятельное пособие по технике развития внимания. Настоящее издание является более полным, чем предыдущие, включает новые материалы для самостоятельной работы. Информация изложена в виде восьми уроков. Каждый содержит теоретический раздел, упражнения и инструкции к
 
pivalexander :

Ve işte bellek ve işlemci, soru MQL5'te optimizasyon ile ilgiliydi, daha dikkatli okumanız gerekiyor

Yani, sizce bu kod bellek veya işlemci kullanmıyor mu? Ve derleyiciler hakkındaki sözleri yanıtladım "   Modern derleyicilerin optimizasyonlarını aşmak için çok denemeniz gerekir. "

 
Aleksandr Matveev :

Bu ifadenin yazarının işlemcinin, belleğin ve derleyicinin nasıl çalıştığından tamamen habersiz olduğuna dair bir şüphem var... Kodunuzun herhangi birinin en az onlarca, hatta yüzlerce kez hızlandırılabileceğine bahse girerim.

Bu yüzden önce tartışılan kodla ilgili olarak kanıtlamaya çalışın. Ayrıca, Igor'un bahsettiği yukarıdaki sonuçlara inanıyorsanız, bunun tam tersinin doğru olduğu ortaya çıkıyor. Döngü içindeki bildirim biraz daha hızlıdır.

Dolayısıyla derleyiciyi yenmek için yapılan tüm bu danslar ve şamanizm sonunda daha pahalıya mal oluyor. Derleyicinin kodu optimize etmesi daha zor hale gelir. Bir değişken bir bloğun dışında bildirildiğinde, yinelemeler arasındaki durumunu koruyarak harici olarak kabul edilir. Bu nedenle derleyici, optimizasyon olasılıklarında sınırlıdır. İşlevsel programlama paradigmasına aşina iseniz, temiz kod her zaman "kirli" (yan etkileri olan) koddan daha iyi optimize edilir.

 
Alexey Navoykov :

Bu yüzden önce tartışılan kodla ilgili olarak kanıtlamaya çalışın. Üstelik, Igor'un bahsettiği yukarıdaki sonuçlara inanıyorsanız, bunun tam tersinin doğru olduğu ortaya çıkıyor. Döngü içindeki bildirim biraz daha hızlıdır.

Dolayısıyla derleyiciyi yenmek için yapılan tüm bu danslar ve şamanizm sonunda daha pahalıya mal oluyor. Derleyicinin kodu optimize etmesi daha zor hale gelir. Bir değişken bir bloğun dışında bildirildiğinde, yinelemeler arasındaki durumunu koruyarak harici olarak kabul edilir. Bu nedenle derleyici, optimizasyon olasılıklarında sınırlıdır. İşlevsel programlama paradigmasına aşina iseniz, temiz kod her zaman "kirli" (yan etkileri olan) koddan daha iyi optimize edilir.

Ne de olsa boş zamanınızda okuyun, önerdiğim kitabı, derleyiciler hakkında birçok yeni şey öğreneceğinizi düşünüyorum.

 
Alexey Navoykov :

Bu yüzden önce tartışılan kodla ilgili olarak kanıtlamaya çalışın. Ayrıca, Igor'un bahsettiği yukarıdaki sonuçlara inanıyorsanız, bunun tam tersinin doğru olduğu ortaya çıkıyor. Döngü içindeki bildirim biraz daha hızlıdır.

Dolayısıyla derleyiciyi yenmek için yapılan tüm bu danslar ve şamanizm sonunda daha pahalıya mal oluyor. Derleyicinin kodu optimize etmesi daha zor hale gelir. Bir değişken bir bloğun dışında bildirildiğinde, yinelemeler arasındaki durumunu koruyarak harici olarak kabul edilir. Bu nedenle derleyici, optimizasyon olasılıklarında sınırlıdır. İşlevsel programlama paradigmasına aşina iseniz, temiz kod her zaman "kirli" (yan etkileri olan) koddan daha iyi optimize edilir.

Testim tam tersini gösteriyor, döngünün arkasında değişken bildirimi olan kod daha hızlı

https://www.mql5.com/en/forum/320307/page2#comment_12886814

Объявление переменных за циклом или внутри цикла?
Объявление переменных за циклом или внутри цикла?
  • 2019.08.18
  • www.mql5.com
или Есть ли разница? с учетом всех оптимизаций компилятора mql5...
 
pivalexander :

Birçok kez başlatıldı, sonuç kararlı, döngünün arkasındaki değişkenin bildirimi ile kod daha hızlı çalışıyor

Garip, ama biraz daha erken, bir kişi tam tersi sonuçlar aldı
 
pivalexander :

Testim tam tersini gösteriyor, döngünün arkasında değişken bildirimi olan kod daha hızlı

Döngü içinde elde ettiğiniz sonuç hiçbir şekilde kullanılmaz. Bu tür boş testlerin sonuçlarına güvenilemez. Derleyici, durumlardan birinde döngünün tüm gövdesini basitçe kesebilir.
 
Alexey Navoykov :
Garip, ama biraz daha erken, bir kişi tam tersi sonuçlar aldı

Su baskınını durdurun, önce malzemede ustalaşın ve ardından davanızı kanıtlayın. İşlemcinin ve belleğin çalışması hakkında en az bir kitap okusaydınız, sonuç herhangi bir test yapmadan sizin için net olurdu. Size bunların en ustacasını sundum, eğer programlamada sessizce ilerlemek istiyorsanız mutlaka okuyacaksınız.

 
Alexey Navoykov :
Garip, ama biraz daha erken, bir kişi tam tersi sonuçlar aldı

Yapay bir örnek üzerinde böyle bir hız testinin hiç bir şekilde gösterge olmadığını söylemiştim. Hata ayıklayıcı kapsamındaki araştırmam yeterli değil mi? güvenilmiyor muyum? Herkes görmezden geldi. Bu ustanın işi, ben gidiyorum.

 
Alexey Navoykov :

Ayrıca, Igor'un bahsettiği yukarıdaki sonuçlara inanıyorsanız, bunun tam tersinin doğru olduğu ortaya çıkıyor.

Kendime inanmıyorum, her zaman iki kez kontrol ediyorum, bence özgüvenimi yükseltmemelisin ... tarihte farklı durumlar vardı, şu anda bir Napolyon kadını bulacağım ve gidiyoruz! ))))


Alexey Navoykov :
Garip, ama biraz daha erken, bir kişi tam tersi sonuçlar aldı

garip değil, MQL'deki en basit operatörleri ve işlemleri test edebilmeniz gerekiyor - peki, neden testime srand( GetTickCount() ) ekledim?

;)

Neden: