performance.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. include __DIR__ . "/bootstrap.php";
  3. if (file_exists(__DIR__ . '/config-local.php')) {
  4. $param = include(__DIR__ . '/config-local.php');
  5. } else {
  6. $param = include(__DIR__ . '/config.php');
  7. }
  8. $phpRedisConfig = $param['class'] = 'dcb9\redis\Connection';
  9. $yiiRedisConfig = $param['class'] = 'yii\redis\Connection';
  10. $app = new \yii\console\Application([
  11. 'id' => 'test-performance-app',
  12. 'basePath' => __DIR__,
  13. 'vendorPath' => dirname(__DIR__) . '/vendor',
  14. 'components' => [
  15. 'phpRedis' => $phpRedisConfig,
  16. 'yiiRedis' => $yiiRedisConfig,
  17. ],
  18. ]);
  19. $count = 10000;
  20. echo "phpredis run SET $count times in";
  21. $start = microtime(true);
  22. /* @var $phpRedis \dcb9\redis\Connection */
  23. $phpRedis = Yii::$app->phpRedis;
  24. $phpRedis->open();
  25. $phpRedis->flushdb();
  26. for ($i = 0; $i < $count; $i++) {
  27. $phpRedis->set('php_redis_prefix' . $i, $i);
  28. }
  29. echo " " . ((microtime(true) - $start) * 1000) . " micro seconds.\n";
  30. echo "yii redis run SET $count times in";
  31. $start = microtime(true);
  32. /* @var $yiiRedis \yii\redis\Connection */
  33. $yiiRedis = Yii::$app->yiiRedis;
  34. $yiiRedis->flushdb();
  35. for ($i = 0; $i < $count; $i++) {
  36. $yiiRedis->set('yii_redis_prefix' . $i, $i);
  37. }
  38. echo " " . ((microtime(true) - $start) * 1000) . " micro seconds.\n";
  39. echo "phpredis run GET $count times in";
  40. $start = microtime(true);
  41. for ($i = 0; $i < $count; $i++) {
  42. $phpRedis->get('php_redis_prefix' . $i);
  43. }
  44. echo " " . ((microtime(true) - $start) * 1000) . " micro seconds.\n";
  45. echo "yii redis run GET $count times in";
  46. $start = microtime(true);
  47. for ($i = 0; $i < $count; $i++) {
  48. $yiiRedis->get('yii_redis_prefix' . $i);
  49. }
  50. echo " " . ((microtime(true) - $start) * 1000) . " micro seconds.\n";