PNRGByLeo/Test/Bench.mq5

76 lines
2.2 KiB
MQL5
Raw Permalink Normal View History

2026-09-01 09:13:18 -05:00
//+------------------------------------------------------------------+
//| 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;
2026-09-01 09:21:10 -05:00
uint k2 = 0;
2026-09-01 09:13:18 -05:00
ulong a = GetMicrosecondCount();
for(int i = 0; i < ITER; i++)
{
2026-09-01 09:21:10 -05:00
k2 += prng.nextUInt32();
2026-09-01 09:13:18 -05:00
}
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++)
{
2026-09-01 09:21:10 -05:00
k2 += native.nextUInt32();
2026-09-01 09:13:18 -05:00
}
b = GetMicrosecondCount();
Print("Nat: ", (b - a), " k2: ", k2);
//---
TSN::CRandom<TSN::CMersenneTwister64> mt;
k2 = 0;
a = GetMicrosecondCount();
for(int i = 0; i < ITER; i++)
{
2026-09-01 09:21:10 -05:00
k2 += mt.nextUInt32();
2026-09-01 09:13:18 -05:00
}
b = GetMicrosecondCount();
Print("MT: ", (b - a), " k2: ", k2);
}
//+------------------------------------------------------------------+
2026-09-01 10:01:23 -05:00
/*
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
*/