//+------------------------------------------------------------------+ //| 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 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); } //+------------------------------------------------------------------+