x64 platformları için yeni MQL5 derleyicisinin test edilmesi - hesaplamaların 2'den 10'a hızlandırılması!
Aferin!
İşte daha önceki testler ve tartışmalar:
Alanında profesyoneller!
Teşekkür ederim!
Ayrıca, 20 Mayıs'a kadarki bir sonraki sürümde, büyük olasılıkla geçmiş verilere dayalı bir hata ayıklayıcı kullanıma sunulacaktır.
Sadece iFX Expo'da 26-28 Mayıs'ta göstereceğiz.
- iFX EXPO
- www.ifxexpo.com
Renat Fatkhullin :
- Yeni 64-bit MQL5 derleyicisi, mevcut MQL5 derleyicisinden 2 ila 10 kat daha hızlıdır
Yeni derleyicinin geliştirilmesi çok uzun zaman aldı, ancak getirisi inanılmazdı. Dize işlemlerinin optimizasyonu ile ilgili sorular var ama onları da hızlandırmaya çalışacağız. - Yeni derleyici, Visual Studio 2012 x64 derleyicisinin kalitesine ve hızına yaklaştı
Hala test yaptığımız için tüm optimizasyon yöntemlerini henüz etkinleştirmedik. Bu nedenle, sonuçlar daha da iyileşecektir.
Ayrıca, 20 Mayıs'a kadarki bir sonraki sürümde, büyük olasılıkla geçmiş verilere dayalı bir hata ayıklayıcı kullanıma sunulacaktır.
Sadece iFX Expo'da 26-28 Mayıs'ta göstereceğiz.
Yeni derleyici, Visual Studio 2012 x64 derleyicisinin kalitesine ve hızına yaklaştı
Hala test yaptığımız için tüm optimizasyon yöntemlerini henüz etkinleştirmedik. Bu nedenle, sonuçlar daha da iyileşecektir.
İyi haberler ! İyi !
Renat Fatkhullin'in fotoğrafı.
Aynı anda daha fazla hesaplama yapma ve DLL'ye geçiş hakkında daha az düşünme yeteneği. Bu özellikle ağır matematik yapanlar için önemlidir.
Evet, gerçekten harici DLL'ler gerektirecek herhangi bir görev düşünemiyorum.
Ayrıca, 20 Mayıs'a kadarki bir sonraki sürümde, büyük olasılıkla geçmiş verilere dayalı bir hata ayıklayıcı kullanıma sunulacaktır.
Ve bu gerçekten en çok ihtiyaç duyulan özellik. Bunun için - gerçekten çok teşekkür ederim.
Şahsen, hala bir sorum var - dizilere işaretçiler. Özel diziler için sorun, diziyi bir sınıfa sararak çözülür.
Ancak OnCalculate() işlevine iletilen diziler için, verileri ilk olarak dahili arabelleklere kopyalamanız ve ancak ondan sonra işaretçileri çözümleyici ve işleyici nesnelerinin içine geçirmeniz gerekir. Bir keresinde memcpy kullanarak işaretçileri geçmeye çalıştım, ancak bir nedenden dolayı hız neredeyse aynıydı ve bence bu tür "hileler" kullanılmamalıdır.
Belki bir erişim türü kullanmak daha kabul edilebilir olacaktır. Genel olarak görev, bir dizinin öğelerine onu kopyalamadan erişmektir.
Evet, gerçekten harici DLL'ler gerektirecek herhangi bir görev düşünemiyorum.
MqlTradeRequest yapısının bir örneğinin sapma alanına bir girdi parametresi atamanın bir kod oluşturma hatasına yol açtığı bulundu.
Varsayımsal örnek (diğer her şey kaldırıldı):
sinput ulong deviation = 100 ; int OnInit () { MqlTradeRequest request = { 0 }; request.deviation = deviation; //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //--- }" Kod oluşturma hatası 1 1 " alıyorum
Yalnızca "100" atarsanız:
int OnInit () { MqlTradeRequest request = { 0 }; request.deviation = 100 ; //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //--- }
...o zaman derleme hatasız çalışacaktır. Lütfen dikkat, AMD Athlon II X4 645, 3.1 GHz işlemcim var. Belki de bu önemlidir (tam anlamıyla bu hafta AMD'de belirli bir hata servis masasıyla birlikte MQL4'te yakalandı).
Derleyici başka hiçbir şeyden şikayet etmez.
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Daha önce söz verdiğimiz gibi, MetaTrader 5'in 64-bit sürümü için optimize edilmiş yeni bir MQL5 derleyicisi yayınlıyoruz.
Hem terminalin 32 bit sürümleri hem de terminallerin eski sürümleri için oluşturulan kodun tam uyumluluğunu koruduk.
Halihazırda demo sunucumuz MetaQuotes-Demo'da, mevcut yeni işlevlere sahip MetaTrader 5 build 1108'e yükseltebilirsiniz. Yeni optimize edici derleyicinin modunu etkinleştirmek için, [Uzmanlar] bölümündeki Metaeditor.ini dosyasına Optimize=1 anahtarına kaydolmak gerekir:
MQL4, MQL5 ve C++ derleyicilerinin performansını test etmek için standart derleyici testleri kullanıldı. Tüm kaynak dosyalar, herkesin kendileri için iki kez kontrol edebilmesi için bir Excel elektronik tablosuyla birlikte eklenir.
Bu arada aşağıdaki ortamdaki test sonuçlarına bir göz atalım:
Ayrıntılı bir tablo görmek için lütfen üzerine tıklayın.
Hangi sonuçlar:
MQL5, MQL4'ten yüzde onlarca ile birkaç kat arasında daha hızlıdır. Çalışma zamanı ve 32 bit kaybının nedeni. MetaTrader 5, çok daha verimli ve sürekli gelişen bir yürütme ortamına sahiptir.
Yeni derleyicinin geliştirilmesi çok uzun zaman aldı, ancak getirisi inanılmazdı. Dize işlemlerinin optimizasyonu ile ilgili sorular var ama onları da hızlandırmaya çalışacağız.
Hala test yaptığımız için tüm optimizasyon yöntemlerini henüz etkinleştirmedik. Bu nedenle, sonuçlar daha da iyi olacaktır.
Tüccarlara ne veriyor?
Aynı anda daha fazla hesaplama yapma ve DLL'ye geçiş hakkında daha az düşünme yeteneği. Bu özellikle ağır matematik yapanlar için önemlidir.