이 글에서는 Centos에서 Redis와 공유 메모리(shm)를 읽고 쓰는 루프 테스트의 효율성을 주로 소개합니다. 이제는 필요한 친구들이 참고할 수 있도록 공유합니다
redis. 또한 공유 메모리는 모두 메모리 데이터를 읽습니다. 누가 더 효율적인지 테스트하기 위해 Centos 가상 머신에서 공정한 테스트를 수행했습니다.
테스트 매개변수
환경: Centos(구성 무시), 언어: PHP, WebServer: Nginx, 테스트 횟수: 10000, 문자 유형 및 길이: 문자열(1024)
테스트 준비
<?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
redis 쓰기 테스트 10,000번 수행
<?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 秒
공유 메모리(shm)에서 쓰기 테스트 10,000번 수행
<?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 秒
redis에서 읽기 테스트 10,000번 수행
<?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 秒
공유 메모리(shm)에서 읽기 테스트 10,000번 수행
<?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 秒
결과 목록
레디스 읽음: 2.1초 쓰기: 1.7초
Shm 읽기: 0.0021초 쓰기: 0.0025초
효과가 매우 다르다는 것을 알 수 있습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
php는 공유 메모리 프로세스 통신 기능(_shm)을 구현합니다.
PHP 코드 자동 감지(git/svn 통합 PHP_CodeSniffer)
위 내용은 Centos에서 Redis 및 공유 메모리(shm)에 대한 PHP 읽기 및 쓰기 효율성을 루프 테스트합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!