127 строки
4,6 КиБ
C++
#include <iostream>
| |||
#include <chrono>
| |||
#include "simdjson.h"
| |||
| |||
int main()
| |||
{
| |||
// aliases
| |||
using clock = std::chrono::high_resolution_clock;
| |||
using ms = std::chrono::duration<double, std::milli>;
| |||
| |||
// Ruta al archivo
| |||
const char* JSON_PATH = R"(C:\Users\USER\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Shared Projects\JsonParserByLeo\Test\Ben\twitter.json)";
| |||
| |||
// Inputs base
| |||
constexpr int WARMUP = 20;
| |||
constexpr int ITERS = 1000;
| |||
| |||
// Cargar archivo
| |||
simdjson::padded_string json;
| |||
auto err = simdjson::padded_string::load(JSON_PATH).get(json);
| |||
if (err) {
| |||
std::cerr << "No se pudo abrir: " << JSON_PATH << "\n"
| |||
<< simdjson::error_message(err) << "\n";
| |||
return 1;
| |||
}
| |||
std::cout << "Archivo: " << json.size() / 1024 << " KB\n";
| |||
| |||
// Parser unico se reutiliza en cada iteracion
| |||
simdjson::dom::parser parser;
| |||
| |||
// Warm-up
| |||
std::cout << "Warm-up (" << WARMUP << " iteraciones)...\n";
| |||
for (int i = 0; i < WARMUP; ++i) {
| |||
parser.parse(json);
| |||
}
| |||
| |||
// Benchmark
| |||
std::cout << "Benchmark (" << ITERS << " iteraciones)...\n";
| |||
| |||
auto t0 = clock::now();
| |||
| |||
for (int i = 0; i < ITERS; ++i) {
| |||
parser.parse(json);
| |||
}
| |||
| |||
auto t1 = clock::now();
| |||
| |||
// Estadísticas
| |||
double total_ms = ms(t1 - t0).count();
| |||
double mean_ms = total_ms / ITERS;
| |||
double file_mb = json.size() / (1024.0 * 1024.0);
| |||
double mean_mb_s = file_mb / (mean_ms / 1000.0);
| |||
| |||
std::cout << "\n────────────────────────────────────\n";
| |||
std::cout << " Archivo : " << json.size() / 1024 << " KB\n";
| |||
std::cout << " Iteraciones : " << ITERS << "\n";
| |||
std::cout << " Total : " << total_ms << " ms\n";
| |||
std::cout << " Media/iter : " << mean_ms << " ms\n";
| |||
std::cout << " Throughput : " << mean_mb_s << " MB/s\n";
| |||
std::cout << "────────────────────────────────────\n";
| |||
| |||
std::this_thread::sleep_for(std::chrono::seconds(10));
| |||
| |||
return 0;
| |||
}
| |||
| |||
/*
| |||
Archivo: 616 KB
| |||
Warm-up (20 iteraciones)...
| |||
Benchmark (1000 iteraciones)...
| |||
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
Archivo : 616 KB
| |||
Iteraciones : 1000
| |||
Total : 382.445 ms
| |||
Media/iter : 0.382445 ms
| |||
Throughput : 1574.76 MB/s
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
| |||
| |||
| |||
| |||
Archivo: 616 KB
| |||
Warm-up (20 iteraciones)...
| |||
Benchmark (1000 iteraciones)...
| |||
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
Archivo : 616 KB
| |||
Iteraciones : 1000
| |||
Total : 385.693 ms
| |||
Media/iter : 0.385693 ms
| |||
Throughput : 1561.5 MB/s
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
| |||
| |||
| |||
| |||
Archivo: 616 KB
| |||
Warm-up (20 iteraciones)...
| |||
Benchmark (1000 iteraciones)...
| |||
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
Archivo : 616 KB
| |||
Iteraciones : 1000
| |||
Total : 380.659 ms
| |||
Media/iter : 0.380659 ms
| |||
Throughput : 1582.15 MB/s
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
| |||
| |||
Archivo: 616 KB
| |||
Warm-up (20 iteraciones)...
| |||
Benchmark (1000 iteraciones)...
| |||
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
Archivo : 616 KB
| |||
Iteraciones : 1000
| |||
Total : 382.245 ms
| |||
Media/iter : 0.382245 ms
| |||
Throughput : 1575.59 MB/s
| |||
ÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇÔöÇ
| |||
| |||
| |||
| |||
| |||
| |||
*/
|