Une brève analyse des tests de performances de json_encode, json_decode et sérialiser et désérialiser en PHP

coldplay.xixi
Libérer: 2023-04-09 09:44:02
avant
3468 Les gens l'ont consulté

Une brève analyse des tests de performances de json_encode, json_decode et sérialiser et désérialiser en PHP

Je pensais par hasard aujourd'hui, si j'utilise PHP pour écrire une petite base de données de valeurs-clés basée sur des fichiers similaire à BDB pour stocker des données de type enregistrement non structurées, je me demande quelle est son efficacité sera?

J'ai donc réfléchi à la façon de sérialiser et de stocker des objets en PHP de la manière la plus rentable ? J’ai ensuite pensé aux fonctions d’encodage et de décodage JSON recommandées par mes précédents collègues.
Selon lui, json_encode et json_decode sont plus efficaces que les fonctions intégrées serialize et unserialize.
J'ai donc décidé de mener une expérience pour confirmer si ce que mes collègues disaient était vrai.
Les expériences ont été menées respectivement dans les environnements PHP 5.2.13 et PHP 5.3.2.
Utilisez la même variable pour encoder ou décoder 10 000 fois en utilisant la méthode ci-dessus et obtenez le temps nécessaire pour exécuter chaque fonction 10 000 fois.
Ce qui suit est l'un des résultats des tests dans l'environnement PHP 5.2.13 :

Le code est le suivant :

json : 190 
serialize : 257 
json_encode : 0.08364200592041 
json_decode : 0.18004894256592 
serialize : 0.063642024993896 
unserialize : 0.086990833282471 
DONE.
Copier après la connexion

Ce qui suit est l'un des résultats des tests dans l'environnement PHP 5.3.2 :

Le code est le suivant :

json : 190 
serialize : 257 
json_encode : 0.062805891036987 
json_decode : 0.14239192008972 
serialize : 0.048481941223145 
unserialize : 0.05927300453186 
DONE.
Copier après la connexion

La conclusion tirée de cette expérience est : L'efficacité de
json_encode et json_decode n'est pas supérieur à celui de serialize et unserialize. La différence de performances lors de la désérialisation est d'environ deux fois et l'efficacité d'exécution de PHP 5.3 est légèrement améliorée par rapport à celle de PHP 5.2.

Le code est le suivant :

<?php 
$target = array ( 
&#39;name&#39; => &#39;全能头盔&#39;, 
&#39;quality&#39; => &#39;Blue&#39;, 
&#39;ti_id&#39; => 21302, 
&#39;is_bind&#39; => 1, 
&#39;demand_conditions&#39; => 
array ( 
&#39;HeroLevel&#39; => 1, 
), 
&#39;quality_attr_sign&#39; => 
array ( 
&#39;HeroStrength&#39; => 8, 
&#39;HeroAgility&#39; => 8, 
&#39;HeroIntelligence&#39; => 8, 
), 
); 
$json = json_encode($target); 
$seri = serialize($target); 
echo "json :\t\t" . strlen($json) . "\r\n"; 
echo "serialize :\t" . strlen($seri) . "\r\n\r\n"; 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
json_encode($target); 
} 
$etime = microtime(true); 
echo "json_encode :\t" . ($etime - $stime) . "\r\n"; 
//---------------------------------- 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
json_decode($json); 
} 
$etime = microtime(true); 
echo "json_decode :\t" . ($etime - $stime) . "\r\n\r\n"; 
//---------------------------------- 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
serialize($target); 
} 
$etime = microtime(true); 
echo "serialize :\t" . ($etime - $stime) . "\r\n"; 
//---------------------------------- 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
unserialize($seri); 
} 
$etime = microtime(true); 
echo "unserialize :\t" . ($etime - $stime) . "\r\n\r\n"; 
echo &#39;DONE.&#39;; 
?>
Copier après la connexion

Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!