MQL4 ve MQL5'te Rakamları () atlayarak herhangi bir sayıdan (sadece tırnak işaretleri değil) sonra ondalık basamak sayısını alma - sayfa 20

 
Алексей Тарабанов :

Neyin sonucu?

hızlar
 
fxsaber :

Çokluk, sorunun koşuludur.

Sadece bir bulmaca mı?

 
Алексей Тарабанов :

Sadece bir bulmaca mı?

Pratik uygulamalar

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaTrader 5 platformunun yeni versiyonu 1930 yapımı: MQL5'te kayan grafik pencereleri ve .Net kitaplıkları

fxsaber , 2018.12.09 00:18

Bu örnek şimdi 15 kat daha hızlı

 1000000
Time [TestResource()] = 286646


Kabaca söylemek gerekirse, kaynak üzerinden tik yazma/okuma döngüsünün tamamı saniyede 4 milyon tik hızında gerçekleşir.


Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

"MQL5'te Kendin Yap Çok İş parçacıklı Asenkron WebRequest" makalesinin tartışılması

fxsaber , 2018.12.09 00:52

Güncellenmiş Resource_Data.mqh dosyasını deneyin, web sayfalarını aktarırken gecikmeler kaybolmalıdır.

 #include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

#define BENCH(A)                                                              \
{                                                                             \
   const ulong StartTime = GetMicrosecondCount ();                              \
  A;                                                                          \
   Print ( "Time[" + #A + "] = " + ( string )( GetMicrosecondCount () - StartTime)); \
}  

const RESOURCEDATA< uchar > Resource( "::" + __FILE__ ); // Ресурс для передачи данных (байты)
uchar BytesIn[];
const int Init = ArrayResize (BytesIn, 1000000 );

void TestResource()
{
   uchar BytesOut[];

  Resource = BytesIn;
   Print (Resource.Get(BytesOut));
}

void OnStart ()
{
  BENCH(TestResource());
}


eski versiyon

 1000000
Time [TestResource()] = 103746


Yeni bir versiyon

 1000000
Time [TestResource()] = 5222
 
Ilya Malev :

Ve rastgele bir seçimde olağan yerleşik ArraySort ile sıralama hızının bir karşılaştırması var mı? Rastgele verileri ortalama olarak daha hızlı sıralayan en az bir yöntem...

Ya da daha hızlı değil, ama en azından aynı zamanda. Ya da o kadar değil, ama en az iki katından fazla değil. Multithreading gibi herhangi bir Dll ve diğer şamanizm olmadan

Kaynaklar var, kendin ölçebilirsin.

 
Tembel kişi.
 
Nikolai Semko :
geçemiyorum.
Bilgisayara geçince mutlaka bakacağım.
Hızlı bir bakışın ardından, sonucun nasıl %10-20 oranında iyileştirileceğine dair fikirler zaten var.

Korkarım zaten maksimum performansa ulaştık .

 
Belki bir şey fark etmemiştir. Ancak yalnızca bir türden birleşim kullanırsanız, o zaman hala potansiyel vardır.
 
Nikolai Semko :
Belki bir şey fark etmemiştir. Ancak yalnızca bir türden birleşim kullanırsanız, o zaman hala potansiyel vardır.

yanıldığıma memnun olacağım.

 
Алексей Тарабанов :
Tembel kişi.
Senin kokuyor. Tavşan tombul, yoldaş yarbay.
 
fxsaber :

yanıldığıma sevineceğim.

Yoldayken. Kendiniz deneyebilirsiniz. Buradaki fikir, 10, 100, 1000, 10000 gibi çeşitli boyutlarda yapı dizileriyle sendikaları kullanmaktır...
Bu, döngüyü büyüklük sıralarına göre azaltacak ve ArrayCopy'ye yapılan çağrıların sayısını büyüklük sıralarına göre azaltacaktır.
Bu onu memcopy'ye yaklaştırmalıdır.
Neden: