Libraries: MQL4/5-JsonLib - page 4

 
fxsaber #:

How were these values ​​calculated?

#include "fast_json.mqh"
input string datafile = "";

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
 {
//---
  Print("====== fast_json - Bench parsing ======");

//---
  char data[];
  int handle  = FileOpen(datafile,FILE_READ|FILE_BIN);
  uint read   = FileReadArray(handle,data);
  FileClose(handle);
  string stringData = CharArrayToString(data,0,WHOLE_ARRAY,CP_UTF8);
  int tmu = TerminalInfoInteger(TERMINAL_MEMORY_USED);
  int pmu = MQLInfoInteger(MQL_MEMORY_USED);
  ulong begin = GetMicrosecondCount();

  CJson toolkit;
  if(!toolkit.Parse(stringData))
   {
    printf("Parsing %s failed. Last error %s.",datafile,EnumToString((EnumJsonError)toolkit.GetLastError()));
    return;
   }

  string check = toolkit["employees"][0]["name"].ToString();
  ulong end   = GetMicrosecondCount();
  printf("Deserialize %u bytes JSON in %llu microseconds. \nCheck value = %s\nTerminal memory used =%i, MQL memory used = %i MB",read,end-begin,check,
         TerminalInfoInteger(TERMINAL_MEMORY_USED)-tmu,MQLInfoInteger(MQL_MEMORY_USED)-pmu);
 }
 

Forum on trading, automated trading systems and testing trading strategies

Libraries: MQL4/5-JsonLib

Alain Verleyen, 2026.02.22 17:35

  printf("Deserialize %u bytes JSON in %llu microseconds. \nCheck value = %s\nTerminal memory used =%i, MQL memory used = %i MB",read,end-begin,check,
         TerminalInfoInteger(TERMINAL_MEMORY_USED)-tmu,MQLInfoInteger(MQL_MEMORY_USED)-pmu);
 }

I would look at the maximum memory consumption.

  printf("Deserialize %u bytes JSON in %llu microseconds. \nCheck value = %s\nTerminal memory used =%i, MQL memory used = %i MB",read,end-begin,check,
         TerminalInfoInteger(TERMINAL_MEMORY_USED)-tmu,gMemory.GetMax()-pmu); // https://www.mql5.com/ru/code/69335
 }