forked from nique_372/TSNStd
87 lines
2.3 KiB
MQL5
87 lines
2.3 KiB
MQL5
//+------------------------------------------------------------------+
| |
//| UView.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 "..\\String\\UView.mqh"
| |
| |
//+------------------------------------------------------------------+
| |
//| |
| |
//+------------------------------------------------------------------+
| |
class CUcharBuffer
| |
{
| |
public:
| |
CUcharBuffer(void) {}
| |
~CUcharBuffer(void) {}
| |
| |
//---
| |
uchar m_raw[];
| |
};
| |
| |
| |
//+------------------------------------------------------------------+
| |
//| Script program start function |
| |
//+------------------------------------------------------------------+
| |
void OnStart()
| |
{
| |
//---
| |
CUcharBuffer buff;
| |
ArrayResize(buff.m_raw, 1024);
| |
ArrayInitialize(buff.m_raw, 'A');
| |
buff.m_raw[900] = 'B';
| |
| |
//---
| |
TSN::CStringView<CUcharBuffer> view(0, 1024, &buff);
| |
| |
//---
| |
int kswar = 0, k_normal = 0;
| |
ulong tswar = 0, tnormal = 0;
| |
| |
//---
| |
for(int i = 0; i < 8; i++)
| |
{
| |
for(int x = 0; x < 2; x++)
| |
{
| |
//---
| |
const bool is = x == 0;
| |
ulong a = GetMicrosecondCount();
| |
| |
//---
| |
if(is)
| |
{
| |
for(int y = 0; y < 100000; y++)
| |
k_normal += view.Find('B');
| |
}
| |
else
| |
{
| |
for(int y = 0; y < 100000; y++)
| |
kswar += view.FindWithSwar('B');
| |
| |
}
| |
ulong b = GetMicrosecondCount() - a;
| |
| |
//---
| |
if(is)
| |
{
| |
tnormal += b;
| |
}
| |
else
| |
{
| |
tswar += b;
| |
}
| |
}
| |
}
| |
| |
//---
| |
Print("Find: ", tnormal, " k: ", k_normal);
| |
Print("FindWithSwar ", tswar, " k: ", kswar);
| |
}
| |
//+------------------------------------------------------------------+
|