kocsismate/ di-container-benchmarks
一些流行 PHP DI 容器的基准测试
Requires
- php: ^7.4||^8.0
- composer-runtime-api: ^2.0
- ext-curl: *
- ext-json: *
- aura/di: ^4.0.0
- chubbyphp/chubbyphp-container: ^2.0.0
- doctrine/cache: ^1.6.1
- illuminate/container: ^8.17.0
- joomla/di: ^2.0.x-dev
- laminas/laminas-servicemanager: ^3.5.0
- level-2/dice: ^4.0.1
- php-di/php-di: ^6.3.0
- psr/container: ^1.0.0
- symfony/config: ^5.1
- symfony/dependency-injection: ^5.1.0
- woohoolabs/zen: ^3.0.0
- yiisoft/yii2: ^2.0.31
Requires (Dev)
- phpstan/phpstan: ^0.12.0
- phpstan/phpstan-strict-rules: ^0.12.0
- squizlabs/php_codesniffer: ^3.5.6
- woohoolabs/coding-standard: ^2.3.0
This package is auto-updated.
Last update: 2024-08-30 01:07:58 UTC
README
目录
简介
2014年,在 Sitepoint 上发布了一篇关于PHP依赖注入容器的非常有趣的基准测试文章。不幸的是,测试的实施引起了相当大的争议,因此基准测试本身并没有太多洞察力。
从那时起,我就对这个话题很感兴趣,所以我想进行另一个基准测试,这个测试也试图测量真实世界的性能,同时尽可能保持客观和可靠。
结果
您可以在这里找到基准测试结果。
安装
您也可以简单地下载或克隆此存储库,并通过运行以下命令通过Composer 安装它
$ composer require kocsismate/di-container-benchmarks:dev-master
使用方法
Docker 的使用方法
作为先决条件,您的机器上必须安装Docker Compose 和至少 Docker 17.06 CE,才能使用此基准测试方法。
将 .env.dist
文件复制到 .env
,并随意覆盖其中的值。现在,您可以运行
./benchmark.sh docker
来执行测量。
HTML 输出将生成在 "docs" 目录中。
在 AWS EC2 上的使用方法
作为先决条件,您的机器上必须安装Terraform 和 git
,才能使用此基准测试方法。
首先,通过将 aws.tfvars.dist
复制到 build/infrastructure/config/aws.tfvars.dist
目录中的 aws.tfvars
来创建必要的配置文件
cp build/infrastructure/config/aws.tfvars.dist build/infrastructure/config/aws.tfvars
然后,覆盖其中的值
access_key
:您的 AWS 账户的访问密钥secret_key
:您的 AWS 账户的秘密访问密钥ssh_key_name
:您添加到 EC2 的密钥对名称ssh_private_key
:您的私钥文件名region
:默认为 "eu-central-1",但您应选择您所在地区最接近的一个image_name
:EC2 映像的名称image_architecture
:EC2 映像的 CPU 架构(例如 x86_64 或 arm64)instance_type
:默认为 "C5.large"(此实例类型不在免费层范围内!)
最后,您必须将您的私钥复制到 "build/infrastructure/config" 目录中,文件名与 ssh_private_key
设置中定义的名称相匹配。
现在,您已经准备就绪
./benchmark.sh aws
HTML 输出将生成在 "docs" 目录中。
在您的宿主机上的使用方法
如果上述方法都不适用于您,则在运行基准测试之前,您必须采取几个步骤
- 安装一个 Web 服务器,并配置它以能够提供 "public/index.php" 服务
- 至少安装 PHP 8.0,并启用 OPcache 和预加载
- 安装 Composer
- 将
BENCHMARK_URL
环境变量设置为 "public/index.php" 可用的 URL。例如
export BENCHMARK_URL=http://localhost/index.php
现在,您只需输入以下内容即可运行基准测试
.\benchmark.sh host
如果您不想将基准测试 URL 作为环境变量指定,您也可以将其作为参数传递
./benchmark.sh host http://localhost/index.php
从浏览器使用
您甚至可以从浏览器手动运行测试。当基准测试的Docker容器正在运行时,只需访问 localhost:8090
,否则您需要定位到上一节中提到的 BENCHMARK_URL
URL。有关更多信息,请参阅相关URL,它提供了详细的说明。
贡献
有关详细信息,请参阅 CONTRIBUTING。
支持
有关详细信息,请参阅 SUPPORT。
致谢
许可证
MIT许可(MIT)。有关更多信息,请参阅 许可文件。