Maison >développement back-end >tutoriel php >Explication détaillée des tests de sérialisation des données PHP

Explication détaillée des tests de sérialisation des données PHP

墨辰丷
墨辰丷original
2018-05-18 14:52:081680parcourir

Cet article présente principalement des informations pertinentes sur l'explication détaillée des exemples de tests de sérialisation des données PHP. Il présente principalement la comparaison de msgpack, json et sérialiser. Les amis dans le besoin peuvent se référer aux

Données PHP. Exemples de tests de sérialisation. Explication détaillée

Code de test

$msg = ['test'=>23];
$start = microtime(true); 
for($i=0;$i<100000;$i++){
  $packMsg = msgpack_pack($msg);
}
echo &#39;pack len:&#39;.strlen($packMsg)."\r\n";
$end = microtime(true);
echo &#39;run time:&#39;.($end-$start).&#39;s&#39;."\r\n"; 
echo &#39;memory usage:&#39;.(memory_get_usage()/1024)."KB\r\n";
/*
$start = microtime(true); 
for($i=0;$i<100000;$i++){
  $jsonMsg = json_encode($msg);
}
echo &#39;json len:&#39;.strlen($jsonMsg)."\r\n";
$end = microtime(true); 
echo &#39;run time:&#39;.($end-$start).&#39;s&#39;."\r\n"; 
echo &#39;memory usage:&#39;.(memory_get_usage()/1024)."KB\r\n";

$start = microtime(true); 
for($i=0;$i<100000;$i++){
  $packMsg = serialize($msg);
}
echo &#39;php len:&#39;.strlen($packMsg)."\r\n";
$end = microtime(true);
echo &#39;run time:&#39;.($end-$start)."s\r\n";
echo &#39;memory usage:&#39;.(memory_get_usage()/1024)."KB\r\n";*/

Résultats d'exécution

pack len:7
run time:0.024219989776611s
memory usage:354.4765625KB
json len:11
run time:0.010890007019043s
memory usage:354.1796875KB
php len:22
run time:0.010586977005005s
memory usage:353.8828125KB

Commentaires analytiques

Les résultats de base des recherches en ligne sont (probablement des versions antérieures à php7)

运行速度 serialize<json<msgpack
长度  serialize>json>msgpack
内存消耗 serialize<json<msgpack //不过近乎一致

Exécutez-le en php7, et les résultats sont les suivants

运行速度 serialize<msgpack<json  //这里出现了变化
长度  serialize>json>msgpack
内存消耗 serialize<json<msgpack //不过近乎一致

Connexe recommandé :

Utiliser js natif pour implémenter le formulaire sérialisation (tutoriel graphique)

PHP séquence Explication détaillée de et désérialisation sérialisation exemples de fonctions

JSONSérialisation et désérialisationSérialisationMéthode de mise en œuvre (avec code)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn