MT5 ve iş başında hız - sayfa 16

 
fxsaber :

ZY Aynı senaryoyu diğer ticaret platformlarıyla karşılaştırmak ilginç olurdu.

MT4 b1280.

 // Мониторинг длительных пиков выполнения важных функций для торговли.
#include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/321/Benchmark.mqh

input int inCycle = 10 ;     // Циклов проверки в одном OnTick
input int inAlertTime = 1 ; // Нижний порог в миллисекундах

#define _B2(A) _B(A, AlertTime)

void Check( const string Symb, const int AlertTime = 1 )
{
   MqlTick Tick;
  
   if (_B2( SymbolInfoTick (Symb, Tick)))
  {
    _B2(OrdersHistoryTotal());
    _B2( OrdersTotal ());
    _B2( OrderSelect ( 0 , SELECT_BY_POS));
    _B2( OrderSelect ( 0 , SELECT_BY_POS, MODE_HISTORY));
    _B2( OrderSelect ( 0 , SELECT_BY_TICKET));
        
    _B2( GetLastError ());
    _B2( IsStopped ());
    
    _B2( SymbolInfoDouble (Symb, SYMBOL_ASK ));
    _B2( SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE ));
    _B2( SymbolInfoDouble (Symb, SYMBOL_POINT ));
    _B2( SymbolInfoInteger (Symb, SYMBOL_DIGITS ));

    _B2( TimeCurrent ());
    _B2( TimeLocal ());
    
    _B2( OrderGetDouble ( ORDER_PRICE_CURRENT ));
    _B2( OrderGetInteger ( ORDER_MAGIC ));
    _B2( OrderGetString ( ORDER_SYMBOL ));
                
    _B2( AccountInfoDouble ( ACCOUNT_EQUITY ));
        
    _B2( MQLInfoInteger ( MQL_TRADE_ALLOWED ));
    _B2( AccountInfoInteger ( ACCOUNT_TRADE_EXPERT ));
    _B2( AccountInfoInteger ( ACCOUNT_TRADE_ALLOWED ));
    _B2( TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED ));
    
    _B2( SymbolsTotal ( true ));
    _B2( SymbolName ( 0 , true ));
    _B2( Symbol ());
    
    _B2( GlobalVariableCheck ( NULL ));
    _B2( GlobalVariableGet ( NULL ));
    
    _B2( ResourceFree ( NULL ));
  }
}

void OnTick ()
{
   for ( int i = 0 ; i < inCycle; i++)
    Check( _Symbol , inAlertTime);      
}


 2020.08 . 27 13 : 09 : 46.799 Test6 EURUSD,M1: Alert : Time[Test6.mq4 39 : AccountInfoInteger ( ACCOUNT_TRADE_EXPERT )] = 7 ms.
2020.08 . 27 13 : 09 : 46.790 Test6 EURUSD,M1: Alert : Time[Test6.mq4 18 : OrderSelect ( 0 ,SELECT_BY_POS,MODE_HISTORY)] = 2 ms.
2020.08 . 27 13 : 09 : 46.784 Test6 EURUSD,H1: Alert : Time[Test6.mq4 25 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 1 ms.

Sadece üç parça sıçradı ve sonra çok nadiren dışarı fırladı. HistorySelect ve CopyTicks olmadığından, fren oluşturmak muhtemelen zordur.

 
Fast235 :

ikisi de Haswell olduğu için xeon'un çalışma frekansı çok daha düşüktür , operasyonda ve tekli testlerde performansta düşüş olur , sadece multi-thread optimizasyonda kazanç olur. En son modellerden i3'ün çalışması çok daha hızlı olmalı

geliştiricilerden önbellek seviyelerinin işin hızı üzerindeki etkisini ve aslında Zen2'nin ve en son istihbaratın hızını öğrenmek için


Ekle

Elimde Ryzen 3700x var, Intel ile testler yapabilirsiniz.

örneğin, bu normal komut dosyasını kullanarak MQL5\Scripts\UnitTests\Stat\TestStatBenchmark.mq5

bir zamanlayıcı ile birden çok kez döngü

Burada testlerden değil , ticaret emirlerinin yürütülmesindeki gecikmelerden bahsediyoruz. Bu gecikme ve yüzer. Hem TC hem de benim için oldukça rahatsız edici.

 
fxsaber :

Sadece üç parça sıçradı ve sonra çok nadiren dışarı fırladı. HistorySelect ve CopyTicks olmadığından, fren oluşturmak muhtemelen zordur.

Ben de MT4'te bekledim.

 2020.08 . 27 13 : 18 : 00.306 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 26 : SymbolInfoDouble (Symb, SYMBOL_POINT )] = 1 ms.
2020.08 . 27 13 : 17 : 39.820 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 30 : TimeLocal ()] = 2 ms.
2020.08 . 27 13 : 17 : 32.598 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 30 : TimeLocal ()] = 36 ms.
2020.08 . 27 13 : 17 : 29.676 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 15 : OrdersHistoryTotal()] = 1 ms.
2020.08 . 27 13 : 17 : 26.468 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 27 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 5 ms.
2020.08 . 27 13 : 17 : 26.460 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 13 : SymbolInfoTick (Symb,Tick)] = 1 ms.
2020.08 . 27 13 : 17 : 14.528 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 13 : SymbolInfoTick (Symb,Tick)] = 3 ms.
2020.08 . 27 13 : 16 : 52.309 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 15 : OrdersHistoryTotal()] = 2 ms.
2020.08 . 27 13 : 16 : 52.308 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 15 : OrdersHistoryTotal()] = 2 ms.
2020.08 . 27 13 : 16 : 52.307 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 36 : AccountInfoDouble ( ACCOUNT_EQUITY )] = 1 ms.
2020.08 . 27 13 : 16 : 42.448 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 17 : OrderSelect ( 0 ,SELECT_BY_POS)] = 2 ms.
2020.08 . 27 13 : 16 : 32.480 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 36 : AccountInfoDouble ( ACCOUNT_EQUITY )] = 3 ms.
2020.08 . 27 13 : 16 : 32.479 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 15 : OrdersHistoryTotal()] = 3 ms.
2020.08 . 27 13 : 16 : 32.477 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 15 : OrdersHistoryTotal()] = 1 ms.
2020.08 . 27 13 : 16 : 29.096 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 26 : SymbolInfoDouble (Symb, SYMBOL_POINT )] = 1 ms.
2020.08 . 27 13 : 16 : 14.593 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 15 : OrdersHistoryTotal()] = 23 ms.
2020.08 . 27 13 : 14 : 55.398 Test6 GBPCAD.rann,H1: Alert : Time[Test6.mq4 27 : SymbolInfoInteger (Symb, SYMBOL_DIGITS )] = 1 ms.
2020.08 . 27 13 : 13 : 34.891 Test6 GBPCAD.rann,M1: Alert : Time[Test6.mq4 25 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 2 ms.

36 milisaniyede TimeLocal. Daha büyük kene hacmine sahip bir sembol seçtim.

 

İlgilenenler için, oynama talimatları burada .

Kendisine dokunulmayacağını düşünen.

 2020.08 . 27 13 : 17 : 56.139 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 48 : OrdersTotal ()] = 2 ms.
2020.08 . 27 13 : 17 : 56.167 Test6 (EURUSD,M1)       Alert : Time[Test6.mq5 48 : OrdersTotal ()] = 39 ms.
2020.08 . 27 13 : 17 : 56.198 Test6 (EURUSD,H1)       Alert : Time[Test6.mq5 48 : OrdersTotal ()] = 54 ms.
2020.08 . 27 13 : 18 : 11.512 Test6 (EURUSD,M1)       Alert : Time[Test6.mq5 48 : OrdersTotal ()] = 3 ms.
 
fxsaber :

Daha büyük kene hacmine sahip bir sembol seçtim.

Kontrol bile etmeyeceğim. Cam tabelalı en popüler FORTS sembolünü hayal edin. OnBookEvent'te OnTick mantığı yerine. Gecikmeler korkunç olmalı.

Gecikmeleri en aza indirmek için yapılması gerekenler konusunda resmi önerilere ihtiyacımız var.

 
fxsaber :

Frenleri yeniden oluşturmak için, OnTick'e eşzamanlı bir çağrı elde etmek için komut dosyasını BİR sembolden oluşan birkaç grafik üzerinde çalıştırmanız gerekir. Sonra her kene uyarılar dökülür.

CPU yük grafiği, terminal64.exe'nin sekiz mantıksal çekirdeğin %30'una kadar yüklediğini gösterir. Bunlar, çalışan bir komut dosyasına sahip yalnızca dört EURUSD grafiğidir. Her grafiğin aynı anda nasıl yüklendiğini açıkça görebilirsiniz.

Bu kadar kaynak nereye gidiyor?

Bu soruyu cevaplamak kolaydır.

Burası çok fazla veriyi kopyaladığınız yer:

     HistorySelect ( MathRand (), INT_MAX );

Aslında, daha fazla kullanım için mevcut tüm ticaret geçmişini terminal veri tabanından Expert Advisor ortamına almak için bir komut verirsiniz. Özellikle aynı istekleri önbelleğe almak için olası bir algoritmayı rastgele yıkmaya çalışmak.

Ancak tüm bu verileri kullanmazsınız, ancak hemen bir sonraki satırda sıfırlarsınız:

    _B2( HistorySelect (Tick.time, INT_MAX ));

Açıktır ki, terminal tabanı, erişim senkronizasyonu ile paylaşılan bir kaynaktır. Ve kasten on binlerce sipariş ve anlaşma oluşturdunuz.

Tüm bu anlamsız hareket, aynı anda birkaç iş parçacığından her bir işarette 10 kez tekrarlanır. Üstelik bu eylemlerin eşzamanlılığını birkaç akıştan bilinçli olarak elde edersiniz.

Yani ne ve neden yaptığınızı ve kaynakların nereye gittiğini çok iyi biliyorsunuz ve aynı zamanda "MT5'ten aşırı CPU yükü nedeniyle gecikmeler" olduğunu iddia ediyorsunuz.

Bununla, açıkça bilgisayarınızda bir probleminiz var. Yani, evet, önemli miktarda belleği çok aktif bir şekilde hareket ettiriyorsunuz, ancak bunun işlevlerin, özellikle de HistorySelect () ile ilgili olmayanların yürütme süresi üzerinde böyle bir etkisi olmamalıdır.

B2582 testlerimizde, tik başına 1000 kez ve bir sembolün grafiklerinde 5 EA ile bile, yani. Varsayılan koşullarınızdan daha büyük büyüklük sıraları, tek bir Uyarı gözlenmez.

Test sistemimiz: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz

 
Anton :

Bu soruyu cevaplamak kolaydır.

Bu, birçok veriyi kopyaladığınız yerdir:

Aslında, daha fazla kullanım için mevcut tüm ticaret geçmişini terminal veri tabanından Expert Advisor ortamına almak için bir komut verirsiniz. Özellikle aynı istekleri önbelleğe almak için olası bir algoritmayı rastgele düşürmeye çalışmak.

Ancak tüm bu verileri kullanmazsınız, ancak hemen bir sonraki satırda sıfırlarsınız:

Açıktır ki, terminal tabanı, erişim senkronizasyonu ile paylaşılan bir kaynaktır. Ve kasten on binlerce sipariş ve anlaşma oluşturdunuz.

Tüm bu anlamsız hareket, aynı anda birkaç iş parçacığından her bir onay işareti için 10 kez tekrarlanır. Üstelik bu eylemlerin eşzamanlılığını birkaç akıştan bilinçli olarak elde edersiniz.

Yani ne ve neden yaptığınızı ve kaynakların nereye gittiğini çok iyi biliyorsunuz ve aynı zamanda "MT5'ten aşırı CPU yükü nedeniyle gecikmeler" olduğunu iddia ediyorsunuz.

Bununla birlikte, bilgisayarınızla ilgili bir sorununuz olduğu açık. Yani, evet, önemli miktarda belleği çok aktif bir şekilde hareket ettiriyorsunuz, ancak bu, işlevlerin, özellikle de HistorySelect () ile ilgili olmayanların yürütme süresini hiçbir şekilde etkilememelidir.

B2582 testlerimizde, tik başına 1000 kez ve bir sembolün grafiklerinde 5 EA ile bile, yani. Varsayılan koşullarınızdan daha büyük büyüklük sıraları, tek bir Uyarı gözlenmez.

Test sistemimiz: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz


Meslektaşlar,

uçak modelleme çemberinin seviyesinden ayrılmanın zamanı geldi.

İşte sizin için savaş koşulları: 4 terminal, yaklaşık 300 danışman, yaklaşık 30 araç. Danışmanların üçte biri sipariş kitaplarına abonedir. Bütün bunlar FORTS'ta. Bu koşullar altında modelleyin.

 
Dmi3 :


Meslektaşlar,

uçak modelleme çemberinin seviyesinden ayrılmanın zamanı geldi.

İşte sizin için savaş koşulları: 4 terminal, yaklaşık 300 danışman, yaklaşık 30 araç. Danışmanların üçte biri sipariş kitaplarına abonedir. Bütün bunlar FORTS'ta. Bu koşullar altında modelleyin.

"İşte başlıyorsunuz", bir zip dosyası ve ayrıca sorunun ayrıntılı bir açıklaması olarak alınır. Aksi takdirde, boş konuşma.

Bu durumda, sunulan Uzman Danışmanın kodu ve uygulanmasının etkinliği tartışılmaktadır. Tespit edilen sorunlara göre terminal kodunun optimize edilmesi için çalışmalar yapıldı.

 
Anton :

"İşte başlıyorsunuz", bir zip dosyası ve ayrıca sorunun ayrıntılı bir açıklaması olarak alınır. Aksi halde boş konuşmadır.

Bu durumda, sunulan Uzman Danışmanın kodu ve uygulanmasının etkinliği tartışılmaktadır. Tespit edilen sorunlara göre terminal kodunun optimize edilmesi için çalışmalar yapıldı.

Bir sorunum yok, gönderecek bir şeyim yok.

fxsaber'ın sorunları var, burada 16 sayfa yuvarladı bile.

Ve Mikhail 2014'ten beri AYNI sorunları yaşıyor, şimdiden 149 sayfadan ayrıldı: https://www.mql5.com/ru/forum/38456/page149

Her ikisi de size ihtiyacınız olan tüm bilgileri sağlayacak kadar niteliklidir.

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • 2020.08.20
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,.
 
Anton :

Bu soruyu cevaplamak kolaydır.

Bu, birçok veriyi kopyaladığınız yerdir:

Aslında, daha fazla kullanım için mevcut tüm ticaret geçmişini terminal veri tabanından Expert Advisor ortamına almak için bir komut verirsiniz. Özellikle aynı istekleri önbelleğe almak için olası bir algoritmayı rastgele yıkmaya çalışmak.

Bu dalın gelişiminin kronolojisini takip etmediniz, bu yüzden açıklamalarınızda kendinize suçlayıcı notlar veriyorsunuz.

Çizgiyi MathRand'den kaldırdım. İşte kısa bir günlük.

 2020.08 . 27 22 : 38 : 57.920 Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 3 ms.
2020.08 . 27 22 : 38 : 57.923 Alert : Time[Test6.mq5 19 : CopyTicksRange (Symb,Ticks, COPY_TICKS_ALL ,Tick.time_msc)] = 1 ms.
2020.08 . 27 22 : 38 : 57.926 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 3 ms.
2020.08 . 27 22 : 38 : 57.928 Alert : Time[Test6.mq5 61 : AccountInfoDouble ( ACCOUNT_EQUITY )] = 1 ms.
2020.08 . 27 22 : 38 : 57.940 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 11 ms.
2020.08 . 27 22 : 39 : 02.227 Alert : Time[Test6.mq5 17 : CopyTicks (Symb,Ticks, COPY_TICKS_ALL , 0 , 1 )] = 1 ms.
2020.08 . 27 22 : 39 : 02.229 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 39 : 02.238 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 7 ms.
2020.08 . 27 22 : 39 : 02.241 Alert : Time[Test6.mq5 28 : HistoryDealSelect ( 0 )] = 1 ms.
2020.08 . 27 22 : 40 : 34.575 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 40 : 44.407 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 27 22 : 40 : 44.409 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 9 ms.
2020.08 . 27 22 : 40 : 46.819 Alert : Time[Test6.mq5 40 : SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_VALUE )] = 1 ms.
2020.08 . 27 22 : 40 : 52.760 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 3 ms.
2020.08 . 27 22 : 40 : 52.764 Alert : Time[Test6.mq5 28 : HistoryDealSelect ( 0 )] = 3 ms.
2020.08 . 27 22 : 40 : 54.907 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 3 ms.
2020.08 . 27 22 : 41 : 11.415 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 5 ms.
2020.08 . 27 22 : 41 : 13.517 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 27 22 : 41 : 14.689 Alert : Time[Test6.mq5 18 : CopyTicks (Symb,Ticks, COPY_TICKS_ALL ,Tick.time_msc)] = 1 ms.
2020.08 . 27 22 : 41 : 45.343 Alert : Time[Test6.mq5 19 : CopyTicksRange (Symb,Ticks, COPY_TICKS_ALL ,Tick.time_msc)] = 1 ms.
2020.08 . 27 22 : 42 : 12.156 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 3 ms.
2020.08 . 27 22 : 42 : 19.654 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 42 : 32.581 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 42 : 48.662 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 27 22 : 42 : 49.754 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 42 : 49.756 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 42 : 50.803 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 27 22 : 42 : 50.804 Alert : Time[Test6.mq5 32 : HistoryOrderGetInteger ( 0 , ORDER_MAGIC )] = 1 ms.
2020.08 . 27 22 : 42 : 50.805 Alert : Time[Test6.mq5 44 : TimeCurrent ()] = 1 ms.
2020.08 . 27 22 : 43 : 42.143 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 6 ms.
2020.08 . 27 22 : 43 : 42.148 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 4 ms.
2020.08 . 27 22 : 43 : 54.985 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.
2020.08 . 27 22 : 44 : 01.402 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 1 ms.
2020.08 . 27 22 : 44 : 01.405 Alert : Time[Test6.mq5 22 : HistorySelect (Tick.time, INT_MAX )] = 2 ms.


Ancak tüm bu verileri kullanmazsınız, ancak hemen bir sonraki satırda sıfırlarsınız:

Açıktır ki, terminal tabanı, erişim senkronizasyonu ile paylaşılan bir kaynaktır. Ve kasten on binlerce sipariş ve anlaşma oluşturdunuz.

10K'dan fazla siparişin olduğu gerçek hesaplarda test ediyorum - norm. Bunlar sahte emirler değil, çünkü > %70'i idam edildi.

Bu arada ekranda 9331+576 != 12529.

Tüm bu anlamsız hareket, aynı anda birkaç iş parçacığından her bir onay işareti için 10 kez tekrarlanır. Üstelik bu eylemlerin eşzamanlılığını birkaç akıştan bilinçli olarak elde edersiniz.

Farklı karakterlerde sorun yaşıyorum. Sorunun daha hızlı yeniden üretilmesi için bir karakter kullanılması önerilir.

Her kene üzerinde 10 kez tekrarlamak hayati bir gerekliliktir. Çünkü Bir danışmanın farklı büyülere sahip bir düzine TS içermesi normaldir.

Yani ne ve neden yaptığınızı ve kaynakların nereye gittiğini çok iyi biliyorsunuz ve aynı zamanda "MT5'ten aşırı CPU yükü nedeniyle gecikmeler" olduğunu iddia ediyorsunuz.

Bununla birlikte, bilgisayarınızla ilgili bir sorununuz olduğu açık. Yani, evet, önemli miktarda belleği çok aktif bir şekilde hareket ettiriyorsunuz, ancak bunun işlevlerin, özellikle de HistorySelect () ile ilgili olmayanların yürütme süresi üzerinde böyle bir etkisi olmamalıdır.

Dil sizi beceriksizlikle suçlamak için dönmüyor ama yazdıklarınız, en hafif tabirle hayret verici. HistorySelect, dört endeks buluyor (siparişler tablosu için başlangıç/bitiş ve fırsatlar tablosu için başlangıç/bitiş). Aynı zamanda, tablolar zamana göre sıralanır, bu nedenle en kötü durumda bir ikili arama vardır (olmalıdır). 10K siparişler için anlıktır (ikili logaritmayı hesaplayın). Hangi bellek hacimlerinin hareketi?! Burada kimse korkunç HistorySelectByPosition'dan bahsetmiyor. Temel HistorySelect etkilenir.

b2582 testlerimizde, tik başına 1000 kez ve bir sembolün grafiklerinde 5 EA ile bile, yani. Varsayılan koşullarınızdan daha büyük büyüklük sıraları, tek bir Uyarı gözlenmez.

Test sistemimiz: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz

Lütfen burada testlerin gerçekleştirildiği ticaret hesabı için oturum açma ayrıntılarını sağlayın.