Dieser Artikel stellt hauptsächlich die Effizienz des Schleifentests von PHP beim Lesen und Schreiben von Redis und Shared Memory (SHM) unter Centos vor. Jetzt kann ich ihn mit Ihnen teilen.
Redis, Memcache und Shared Memory lesen alle Speicherdaten. Um zu testen, welches davon effizienter ist, habe ich einen fairen Test unter meiner virtuellen Centos-Maschine durchgeführt.
Testparameter
Umgebung: Centos (Konfiguration ignoriert), Sprache: PHP, Webserver: Nginx, Anzahl der Tests: 10000, Zeichentyp und Länge: Zeichenfolge (1024 )
Vorbereitung zum Testen
<?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); //输出1024
Führen Sie 10.000 Schreibtests auf Redis durch
<?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 秒
Führen Sie 10.000 Schreibtests auf Shared Memory (shm) durch
<?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 秒
Führen Sie 10.000 Lesetests auf Redis durch
<?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 秒
Führen Sie 10.000 Lesetests auf Shared Memory (shm) durch
<?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 秒
Ergebnisliste
Redis Read: 2,1 Sekunden Schreiben: 1,7 Sekunden
Shm Lesen: 0,0021 Sekunden Schreiben: 0,0025 Sekunden
Man erkennt, dass der Effekt sehr unterschiedlich ist.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
PHP implementiert Shared-Memory-Prozesskommunikationsfunktion (_shm)
PHP-Code automatische Erkennung (git/ svn integrierter PHP_CodeSniffer)
Das obige ist der detaillierte Inhalt vonSchleifentest die Effizienz des PHP-Lesens und -Schreibens in Redis und Shared Memory (SHM) unter Centos. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!