//+------------------------------------------------------------------+ //| BenchXho.mq5 | //| Copyright 2026, Niquel Mendoza | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2026, Niquel Mendoza" #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #include "..\\Src\\Main.mqh" #include "..\\Src\\Imp\\All.mqh" #define ITER (500*1000*1000) // 500 millions //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- TSN::CRandom prng; uint k2 = 0; ulong a = GetMicrosecondCount(); for(int i = 0; i < ITER; i++) { k2 += prng.nextUInt32(); } ulong b = GetMicrosecondCount(); Print("Xho: ", (b - a), " k2: ", k2); //--- TSN::CRandom native; k2 = 0; a = GetMicrosecondCount(); for(int i = 0; i < ITER; i++) { k2 += native.nextUInt32(); } b = GetMicrosecondCount(); Print("Nat: ", (b - a), " k2: ", k2); //--- TSN::CRandom mt; k2 = 0; a = GetMicrosecondCount(); for(int i = 0; i < ITER; i++) { k2 += mt.nextUInt32(); } b = GetMicrosecondCount(); Print("MT: ", (b - a), " k2: ", k2); } //+------------------------------------------------------------------+ /* 2026.09.01 09:15:28.370 Bench (EURUSD,H1) Xho: 370991 k2: 1461949214 2026.09.01 09:15:29.564 Bench (EURUSD,H1) Nat: 1194531 k2: 2532024001 2026.09.01 09:15:30.489 Bench (EURUSD,H1) MT: 919721 k2: 37786341 2026.09.01 09:15:32.381 Bench (EURUSD,H1) Xho: 370614 k2: 2028499366 2026.09.01 09:15:33.575 Bench (EURUSD,H1) Nat: 1194534 k2: 851712558 2026.09.01 09:15:34.483 Bench (EURUSD,H1) MT: 902874 k2: 858325125 */