tarantool/benchmarks

Tarantool PHP 连接器的基准测试

dev-master 2020-05-02 23:22 UTC

This package is auto-updated.

Last update: 2024-09-06 04:26:59 UTC


README

Telegram

该仓库包含用于基准测试 Tarantool PHP 连接器的代码。目前有可用的两个连接器:

关于此仓库中展示的基准测试的更详细说明,请参阅 这篇文章

要求

  • PHP 7.1+ (NTS 和 ZTS)
  • Composer
  • Tarantool 1.7.1+
  • ext-msgpack 用于基准测试 Tarantool\Client\Packer\PeclPacker
  • ext-async (分支) 用于异步模式下的连接器基准测试
  • ext-parallel 用于并行模式下的连接器基准测试
  • ext-swoole 用于异步模式下的连接器基准测试
  • ext-tarantool 用于官方 PHP 连接器的基准测试

使用方法

首先,请确保运行了 bench.lua 实例。

如果要在 Docker 上运行,请执行

docker run -d --network host --name=tarantool-bench \
   -v $PWD/bench.lua:/bench.lua tarantool/tarantool:2 tarantool /bench.lua

然后运行

make

以查看使用文本和所有可用的基准测试列表。例如,要(重新)运行所有基准测试,请执行

make clean bench-all

或者,您也可以使用 Docker Compose 在 Docker 上运行基准测试

docker-compose run --rm benchmarks make clean bench-all

您可以通过定义以下环境变量(括号内是默认值)来更改默认的基准测试设置

  • TNT_BENCH_TARANTOOL_URI (tcp://localhost:3301)
  • TNT_BENCH_TEMPLATE (default.php.tpl)
  • TNT_BENCH_ITERATIONS (5)
  • TNT_BENCH_REVOLUTIONS (10000)
  • TNT_BENCH_RETRY_THRESHOLD (3)

例如

make clean bench-all TNT_BENCH_REVOLUTIONS=20000 TNT_BENCH_RETRY_THRESHOLD=5 

结果

以下结果是在 Apple MacBook Pro (2015) 上,在以下环境中运行的基准测试产生的

  • Linux Fedora 30,内核 5.3.8-200.fc30.x86_64
  • 在 Docker 上运行的 Tarantool 2.3.0-115-g5ba5ed37e
  • Docker 19.03.3,构建 a872fc2f86
  • PHP 7.3.11 (cli) (构建:2019 年 10 月 22 日 08:11:04) ( NTS )
  • PHP 7.3.11 (cli) (构建:2019 年 10 月 22 日 08:11:04) ( ZTS )
  • tarantool/client 0.6.0
  • rybakit/msgpack 0.6.1
  • ext-tarantool 0.3.2,带有 补丁
  • ext-msgpack 2.0.3
  • ext-async 0.3.0-8c1da46
  • ext-swoole 4.4.12
  • ext-parallel 1.1.3

同步连接器

chart

同步客户端打包器

chart

同步客户端协议

chart

异步协程

chart

异步连接器

chart

异步客户端协议

chart

Swoole 协程

chart

Swoole 连接器

chart

Swoole 客户端协议

chart

并行线程

chart

并行连接器

chart

并行客户端协议

chart

所有扩展

chart

许可证

该库根据 MIT 许可证发布。有关详细信息,请参阅附带 LICENSE 文件。