• # ti bench

    Posté par . En réponse au journal Aujourd'hui on ne parle pas de k-pop, mais de JSON !. Évalué à 4. Dernière modification le 25 juin 2023 à 12:27.

    Je m'étais lancé dans un benchmark sur gros fichiers, fut un temps. J'ajoute une ligne.

    Sample file

    • 74MB
    • 2.7M tokens
    • 267k objects

    result

    tool RAM (KB) time
    --------------- ----------- ------
    wc (baseline) 1'924 0.34
    jq 247'364 2.36
    gron 1'103'992 5.47
    nron 263'824 1.19
    json-flatten 402'708 3.18
    json-search 413'196 0.96

    analyse

    • gron, j'en ai parlé juste au dessus
    • jq s'en sort pas si mal compte tenu de tout ce qu'il sait faire
    • nron, c'est une tentative de ma part de réimplémenter gron en nim. Je n'y suis pas encore.
    • json-flatten en une implémentation en python
    • json-search est sacrément véloce

    Tous sont très gourmands en RAM. Alors que de ma compréhension ils font un traitement local - O(1) - qui ne devrait pas dépendre de la taille des données - O(N). Au pire de la profondeur des données (longueur du path). Surement les parseurs sous-jacents qui seraient à revoir.