76 lines
No EOL
2.2 KiB
MQL5
76 lines
No EOL
2.2 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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<Xoshiro256> 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<TSN::CMathRandNative> 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<TSN::CMersenneTwister64> 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
|
|
|
|
*/ |