tarantool / benchmarks
Tarantool PHP 连接器的基准测试
dev-master
2020-05-02 23:22 UTC
Requires
- php: ^7.1
- ext-json: *
- phpbench/phpbench: ^1.0@dev
- rybakit/msgpack: ^0.6.1
- symfony/filesystem: ^4.3
- tarantool/client: dev-master
Suggests
- ext-async: For benchmarking connectors in async mode
- ext-msgpack: For benchmarking Tarantool\Client\Packer\PeclPacker
- ext-parallel: For benchmarking connectors in parallel mode
- ext-swoole: For benchmarking connectors in async mode
- ext-tarantool: For benchmarking the official PHP connector
This package is auto-updated.
Last update: 2024-09-06 04:26:59 UTC
README
该仓库包含用于基准测试 Tarantool PHP 连接器的代码。目前有可用的两个连接器:
- tarantool/client,纯 PHP 编写
- 官方的 PECL 扩展
关于此仓库中展示的基准测试的更详细说明,请参阅 这篇文章。
要求
- 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
同步连接器
同步客户端打包器
同步客户端协议
异步协程
异步连接器
异步客户端协议
Swoole 协程
Swoole 连接器
Swoole 客户端协议
并行线程
并行连接器
并行客户端协议
所有扩展
许可证
该库根据 MIT 许可证发布。有关详细信息,请参阅附带 LICENSE 文件。