Script Preparation code:
x
 
var json = {
   "40100":695,
   "40101":2,
   "40102":1,
   "40103":1,
   "40104":1,
   "40105":1,
   "40106":1,
   "40107":1,
   "40108":1,
   "40109":1,
   "40110":72,
   "40111":770,
   "40112":770,
   "40113":1,
   "40114":1,
   "40115":0,
   "40116":1,
   "40117":1,
   "40118":1,
   "40119":1,
   "40120":7,
   "40121":0,
   "40122":0,
   "40123":1,
   "40124":0,
   "40125":0,
   "40126":0,
   "40127":0,
   "40128":0,
   "40129":0,
   "40130":0,
   "40131":0,
   "40132":0,
   "40133":0,
   "40134":0,
   "40135":0,
   "40136":0,
   "40137":0,
   "40138":0,
   "40139":0,
   "40150":0,
   "40151":0,
   "40152":0,
   "40153":0,
   "40154":0,
   "40155":0,
   "40156":0,
   "40157":0,
   "40158":0,
   "40159":0,
   "40160":0,
   "40161":0,
   "40162":0,
   "40163":0,
   "40300":159,
   "40301":158,
   "40302":152,
   "40303":80,
   "40304":80,
   "40305":150,
   "40306":172,
   "40307":172,
   "40308":90,
   "40309":90,
   "40310":100,
   "40311":120,
   "40312":560,
   "40313":30,
   "40314":70,
   "40315":4284,
   "40316":1602,
   "40317":1653,
   "40318":115,
   "40319":135,
   "40320":0,
   "40321":150,
   "40322":250,
   "40323":0,
   "40324":0,
   "40325":0,
   "40326":0,
   "40327":0,
   "40328":2257,
   "40329":0,
   "40330":650,
   "40331":650,
   "40332":650,
   "40333":650,
   "40334":650,
   "40335":650,
   "40336":650,
   "40337":650,
   "40338":650,
   "40339":650,
   "40340":0,
   "40341":0,
   "40342":0,
   "40343":0,
   "40344":0,
   "40345":0,
   "40346":0,
   "40347":0,
   "40348":0,
   "40349":0,
   "40350":0,
   "40351":0,
   "40352":0,
   "40353":0,
   "40354":0,
   "40355":0,
   "40356":0,
   "40357":0,
   "40358":0,
   "40359":0,
   "40360":0,
   "40361":2543,
   "40362":0,
   "40363":0,
   "40364":0,
   "40365":0,
   "40366":0,
   "40367":0,
   "40368":0,
   "40500":0,
   "40501":155,
   "40502":153,
   "40503":150,
   "40504":148,
   "40505":146,
   "40506":157,
   "40507":153,
   "40508":150,
   "40509":127,
   "40510":150,
   "40511":151,
   "40512":153,
   "40513":115,
   "40514":154,
   "40515":154,
   "40516":156,
   "40517":0,
   "40518":0,
   "40519":0,
   "40520":0,
   "40521":0,
   "40522":0,
   "40523":0,
   "40524":0,
   "40525":0,
   "40526":0,
   "40527":0,
   "40528":0,
   "40529":0,
   "40530":0,
   "40531":0,
   "40532":0,
   "40533":0,
   "40534":0,
   "40535":0,
   "40600":0,
   "40601":650,
   "40602":650,
   "40603":700,
   "40604":650,
   "40605":650,
   "40606":650,
   "40607":700,
   "40608":650,
   "40609":650,
   "40610":650,
   "40611":750,
   "40612":750,
   "40613":650,
   "40614":650,
   "40615":750,
   "40616":750,
   "40617":0,
   "40618":0,
   "40619":0,
   "40620":0,
   "40621":0,
   "40622":0,
   "40623":0,
   "40624":0,
   "40625":0,
   "40626":0,
   "40627":0,
   "40628":0,
   "40629":0,
   "40630":0,
   "40631":0,
   "40632":0,
   "40633":0,
   "40634":0,
   "40635":0
};
var modbusMap = {
    40162: { name: "Inhibition sonde inférieure", desc: "", divider: 1 },
    40163: { name: "Inhibition sonde supérieure", desc: "", divider: 1 },
    40300: { name: "Température brûleur inf.", desc: "", divider: 10 },
    40301: { name: "Température brûleur sup.", desc: "", divider: 10 },
    40302: { name: "Température grain", desc: "", divider: 10 },
    40303: { name: "Consigne grille extraction", desc: "", divider: 100 },
    40304: { name: "Consigne grille n°2", desc: "", divider: 100 },
    40305: { name: "Consigne minuterie", desc: "", divider: 1 },
    40306: { name: "Consigne minuterie calculée", desc: "", divider: 1 },
    40307: { name: "Décompte intervalle extraction", desc: "", divider: 1 },
    40308: { name: "Consigne ventilation retardée", desc: "", divider: 1 },
    40309: { name: "Décompte ventilation retardée", desc: "", divider: 1 },
    40310: { name: "Consigne brûleur inférieur", desc: "", divider: 1 },
    40311: { name: "Consigne brûleur supérieur", desc: "", divider: 1 },
    40312: { name: "Consigne température grain", desc: "", divider: 10 },
    40313: { name: "Coefficient de régulation", desc: "", divider: 10 },
    40314: { name: "Temps fermeture volet après extraction", desc: "", divider: 10 },
    40315: { name: "Compteur extractions journalier", desc: "", divider: 1 },
    40316: { name: "Durée fonctionnement brûleur inférieur", desc: "", divider: 1 },
    40317: { name: "Durée fonctionnement brûleur supérieur", desc: "", divider: 1 },
    40318: { name: "Seuil défaut brûleur inférieur", desc: "", divider: 1 },
    40319: { name: "Seuil défaut brûleur supérieur", desc: "", divider: 1 },
    40320: { name: "Cellule de destination", desc: "", divider: 1 },
    40321: { name: "Humidité de sortie", desc: "", divider: 10 },
    40322: { name: "Humidité d'entrée", desc: "", divider: 10 },
    40323: { name: "", desc: "", divider: 1 },
    40324: { name: "", desc: "", divider: 1 },
    40325: { name: "", desc: "", divider: 1 },
    40326: { name: "", desc: "", divider: 1 },
    40327: { name: "", desc: "", divider: 1 },
    40328: { name: "Compteur extractions total", desc: "", divider: 1 },
    40329: { name: "", desc: "", divider: 1 },
    40330: { name: "", desc: "", divider: 10 },
    40331: { name: "", desc: "", divider: 10 },
    40500: { name: "", desc: "", divider: 10 },
    40501: { name: "Sonde n°1", desc: "Valeur sonde air usé n°1", divider: 10 },
    40502: { name: "Sonde n°2", desc: "Valeur sonde air usé n°2", divider: 10 },
    40503: { name: "Sonde n°3", desc: "Valeur sonde air usé n°3", divider: 10 },
    40504: { name: "Sonde n°4", desc: "Valeur sonde air usé n°4", divider: 10 },
    40505: { name: "Sonde n°5", desc: "Valeur sonde air usé n°5", divider: 10 },
    40506: { name: "Sonde n°6", desc: "Valeur sonde air usé n°6", divider: 10 },
    40507: { name: "Sonde n°7", desc: "Valeur sonde air usé n°7", divider: 10 },
    40508: { name: "Sonde n°8", desc: "Valeur sonde air usé n°8", divider: 10 },
    40509: { name: "Sonde n°9", desc: "Valeur sonde air usé n°9", divider: 10 },
    40510: { name: "Sonde n°10", desc: "Valeur sonde air usé n°10", divider: 10 },
    40511: { name: "Sonde n°11", desc: "Valeur sonde air usé n°11", divider: 10 },
    40512: { name: "Sonde n°12", desc: "Valeur sonde air usé n°12", divider: 10 },
    40513: { name: "Sonde n°13", desc: "Valeur sonde air usé n°13", divider: 10 },
    40514: { name: "Sonde n°14", desc: "Valeur sonde air usé n°14", divider: 10 },
    40515: { name: "Sonde n°15", desc: "Valeur sonde air usé n°15", divider: 10 },
    40516: { name: "Sonde n°16", desc: "Valeur sonde air usé n°16", divider: 10 },
    40517: { name: "Sonde n°17", desc: "Valeur sonde air usé n°17", divider: 10 },
    40518: { name: "Sonde n°18", desc: "Valeur sonde air usé n°18", divider: 10 },
    40519: { name: "Sonde n°19", desc: "Valeur sonde air usé n°19", divider: 10 },
    40520: { name: "Sonde n°20", desc: "Valeur sonde air usé n°20", divider: 10 },
    40521: { name: "Sonde n°21", desc: "Valeur sonde air usé n°21", divider: 10 },
    40522: { name: "Sonde n°22", desc: "Valeur sonde air usé n°22", divider: 10 },
    40523: { name: "Sonde n°23", desc: "Valeur sonde air usé n°23", divider: 10 },
    40524: { name: "Sonde n°24", desc: "Valeur sonde air usé n°24", divider: 10 },
    40525: { name: "Sonde n°25", desc: "Valeur sonde air usé n°25", divider: 10 },
    40526: { name: "Sonde n°26", desc: "Valeur sonde air usé n°26", divider: 10 },
    40527: { name: "Sonde n°27", desc: "Valeur sonde air usé n°27", divider: 10 },
    40528: { name: "Sonde n°28", desc: "Valeur sonde air usé n°28", divider: 10 },
    40529: { name: "Sonde n°29", desc: "Valeur sonde air usé n°29", divider: 10 },
    40530: { name: "Sonde n°30", desc: "Valeur sonde air usé n°30", divider: 10 },
    40531: { name: "Sonde n°31", desc: "Valeur sonde air usé n°31", divider: 10 },
    40532: { name: "Sonde n°32", desc: "Valeur sonde air usé n°32", divider: 10 },
    40533: { name: "Sonde n°33", desc: "Valeur sonde air usé n°33", divider: 10 },
    40534: { name: "Sonde n°34", desc: "Valeur sonde air usé n°34", divider: 10 },
    40535: { name: "Sonde n°35", desc: "Valeur sonde air usé n°35", divider: 10 },
    40600: { name: "", desc: "", divider: 10 },
    40601: { name: "Consigne sonde air usé n°1", desc: "", divider: 10 },
    40602: { name: "Consigne sonde air usé n°2", desc: "", divider: 10 },
    40603: { name: "Consigne sonde air usé n°3", desc: "", divider: 10 },
    40604: { name: "Consigne sonde air usé n°4", desc: "", divider: 10 },
    40605: { name: "Consigne sonde air usé n°5", desc: "", divider: 10 },
    40606: { name: "Consigne sonde air usé n°6", desc: "", divider: 10 },
    40607: { name: "Consigne sonde air usé n°7", desc: "", divider: 10 },
    40608: { name: "Consigne sonde air usé n°8", desc: "", divider: 10 },
    40609: { name: "Consigne sonde air usé n°9", desc: "", divider: 10 },
    40610: { name: "Consigne sonde air usé n°10", desc: "", divider: 10 },
    40611: { name: "Consigne sonde air usé n°11", desc: "", divider: 10 },
    40612: { name: "Consigne sonde air usé n°12", desc: "", divider: 10 },
    40613: { name: "Consigne sonde air usé n°13", desc: "", divider: 10 },
    40614: { name: "Consigne sonde air usé n°14", desc: "", divider: 10 },
    40615: { name: "Consigne sonde air usé n°15", desc: "", divider: 10 },
    40616: { name: "Consigne sonde air usé n°16", desc: "", divider: 10 },
    40617: { name: "Consigne sonde air usé n°17", desc: "", divider: 10 },
    40618: { name: "Consigne sonde air usé n°18", desc: "", divider: 10 },
    40619: { name: "Consigne sonde air usé n°19", desc: "", divider: 10 },
    40620: { name: "Consigne sonde air usé n°20", desc: "", divider: 10 },
    40621: { name: "Consigne sonde air usé n°21", desc: "", divider: 10 },
    40622: { name: "Consigne sonde air usé n°22", desc: "", divider: 10 },
    40623: { name: "Consigne sonde air usé n°23", desc: "", divider: 10 },
    40624: { name: "Consigne sonde air usé n°24", desc: "", divider: 10 },
    40625: { name: "Consigne sonde air usé n°25", desc: "", divider: 10 },
    40626: { name: "Consigne sonde air usé n°26", desc: "", divider: 10 },
    40627: { name: "Consigne sonde air usé n°27", desc: "", divider: 10 },
    40628: { name: "Consigne sonde air usé n°28", desc: "", divider: 10 },
    40629: { name: "Consigne sonde air usé n°29", desc: "", divider: 10 },
    40630: { name: "Consigne sonde air usé n°30", desc: "", divider: 10 },
    40631: { name: "Consigne sonde air usé n°31", desc: "", divider: 10 },
    40632: { name: "Consigne sonde air usé n°32", desc: "", divider: 10 },
    40633: { name: "Consigne sonde air usé n°33", desc: "", divider: 10 },
    40634: { name: "Consigne sonde air usé n°34", desc: "", divider: 10 },
    40635: { name: "Consigne sonde air usé n°35", desc: "", divider: 10 },
};
Tests:
  • array.push

     
            var arr = [];
            var name = "";
            var divider = 1;
            var key = null;
            // for each key in json
            for (key in json) {
              // ensure 'key' is an object property
              if (Object.prototype.hasOwnProperty.call(json, key)) {
                name = "no name";
                divider = 1;
                if (typeof modbusMap[key] !== "undefined") {
                  name = modbusMap[key].name;
                  divider = modbusMap[key].divider;
                }
                arr.push({
                  id: key,
                  value: json[key] / divider,
                  name: name
                });
              }
            }
  • spread operator

     
            var arr = {};
            var name = "";
            var divider = 1;
            var key = null;
            // for each key in json
            for (key in json) {
              // ensure 'key' is an object property
              if (Object.prototype.hasOwnProperty.call(json, key)) {
                name = "no name";
                divider = 1;
                if (typeof modbusMap[key] !== "undefined") {
                  name = modbusMap[key].name;
                  divider = modbusMap[key].divider;
                }
                arr[key] = {
                  value: json[key] / divider,
                  name: name
                };
              }
            }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    array.push
    spread operator

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 4 years ago)
Mozilla/5.0 (Linux; Android 6.0.1; Redmi 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36
Chrome Mobile 85 on Android 6.0.1
View result in a separate tab
Test name Executions per second
array.push 1119.8 Ops/sec
spread operator 934.4 Ops/sec