Maison >développement back-end >tutoriel php >Testez en boucle l'efficacité de la lecture et de l'écriture php sur Redis et la mémoire partagée (shm) sous Centos
Cet article présente principalement l'efficacité des tests en boucle PHP pour lire et écrire Redis et la mémoire partagée (shm) sous Centos. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer.
Redis, memcache et mémoire partagée lisent tous les données de la mémoire Afin de tester laquelle est la plus efficace, j'ai fait un test équitable sous ma machine virtuelle Centos.Paramètres des tests
Environnement : Centos (configuration ignorée), langage : PHP, WebServer : Nginx, nombre de tests : 10000, type et longueur de caractères : string (1024 )Préparation des tests
<?php //测试数据 $arr = array( 1 => array ('id' => '4146','attacksdfdsfdsddddddddddd' => '5.45','atk_class' => '神圣级','wufang' => '4.9','def_class' => '超神级','cefang' => '4.9','mdf_class' => '超神级','hp' => '6.43','hp_class' => '神王级','dodge' => '55','dodge_class' => 'SSSS','crit' => '50','crit_class' => 'SSS','penetrate' => '55','penetrate_class' => 'SSSS','mingzhong' => '51','hit_class' => 'SSSS','anti_dizziness' => '0','anti_dizzinesssdfdsfdsfdsfdsfds_class' => 'F','anti_critical' => '20','anti_critical_class' => 'F','tenacity' => '0','tenacity_class' => 'F', ), 2 => array ('id' => '414ddffff7','attack' => '5.45','atk_class' => '神圣级','wufang' => '4.95','def_class' => '超神级','cefang' => '4.95','mdf_class' => '超神级','hp' => '6.43','hp_class' => '神王级','dodge' => '55','dodge_class' => 'SSSS','crit' => '50','crit_class' => 'SSS','penetrate' => '55','penetrate_class' => 'SSSS','mingzhong' => '51','hit_class' => 'SSSS','anti_dizziness' => '0','anti_dizziness_clsdfdsfdsfdsfdsfdsass' => 'F','anti_critical' => '20','anti_critical_class' => 'F','tenacity' => '0','tenacity_class' => 'F', )); $str = json_encode($arr); echo strlen($str); //输出1024Effectuer 10 000 tests d'écriture sur redis
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $redis->auth('310c8cabcdefghf2d8abcdefd44496ac80'); $start = microtime(true) ; for($i = 0; $i<10000; $i++) { $redis->set('key', $str); } echo microtime(true) - $start; //执行5次,大概平均结果为 1.7016470432281 秒Effectuer 10 000 écritures sur la mémoire partagée (shm) Écrire test
<?php $key = 0x4337b123; $size = 1024; $shmid = @shmop_open($key, 'c', 0644, $size); $start = microtime(true); for($i = 0; $i<10000; $i++) { shmop_write($shmid, $str, 0); } @shmop_close($shmid); echo microtime(true) - $start; //执行5次,大概平均结果为 0.0025370121002197 秒Effectuer 10 000 tests de lecture sur redis
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $redis->auth('310c8cabcdefghf2d8abcdefd44496ac80'); $start = microtime(true) ; for($i = 0; $i<10000; $i++) { $redis->get('key'); } echo microtime(true) - $start; //执行5次,大概平均结果为 2.1236310005188 秒Effectuer 10 000 tests de lecture sur la mémoire partagée (shm)
<?php $key = 0x4337b123; $size = 1024; $shmid = @shmop_open($key, 'c', 0644, $size); $start = microtime(true); for($i = 0; $i<10000; $i++) { shmop_read($shmid, 0,1024); } @shmop_close($shmid); echo microtime(true) - $start; //执行5次,大概平均结果为 0.0021078586578369 秒
Liste des résultats
Lecture Redis : 2,1 secondes Écriture : 1,7 secondesLecture Shm : 0,0021 secondes Écriture : 0,0025 secondesOn voit que l'effet est très différent. Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois ! Recommandations associées :php implémente la fonction de communication du processus de mémoire partagée (_shm)
Détection automatique du code PHP (git/ svn intégré PHP_CodeSniffer)
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!