威尼斯手机平台登陆-官方网站登录

威尼斯手机平台登陆为您带来世界三大博彩公司最新相关资讯,威尼斯官方网站登录充分考虑到不同地域网民的不同需求,威尼斯手机平台登陆良好的用户界面,人性化的操作,实用的功能设计使其广泛受到欢迎,推动实体出版、影视、动漫、游戏等相关文化产业的发展。

您的位置:威尼斯手机平台登陆 > 最新文章 > 在HHVM同伴们帮助下,不以为奇的压力测验工具备众多

在HHVM同伴们帮助下,不以为奇的压力测验工具备众多

发布时间:2020-03-04 19:15编辑:最新文章浏览(198)

    摘要:在一个基于Vagrant的本地环境中,可能是某个错误的原因,导致HHVM测试结果很差;在HHVM伙伴们协助下,该原因仍在研究中!然而,在DigitalOcean的一个4GB虚拟机中,HHVM甚至盖过了最新版的PHP-NG的风头!

    主流PHP框架性能非权威测试

    常见的压力测试工具有很多,在本文就简单介绍一下Siege 。Siege是Linux/Unix下的一个WEB系统的压力测试工具。

    图片 1

    作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情。

    下载与安装:

    结论:它们反映出HHVM的功效更佳(在JIT热启动后),虽然出于某些原因,我们不能在所有装备中获取这些结果。

    用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情。不过很多第三方功能不需要自己写,众多大牛已经给铺好路了。

    下载地址:    可根据需要下载版本

    如果你记得我们在几个月前写过一篇文章,那时WordPress 3.9表明是完全支持HHVM的,当时是那么令我们欢欣鼓舞。最初的基准测试结果显示,HHVM要比驱动着当前所有PHP构建的Zend引擎高级得多。后来,问题就出来了:

    用Laravel的话,传说写起来很爽扩展性也够,但是学习成本有点高,总不能给初级开发者半个月的时间去学习框架吧。而且据说江湖人士透漏,Laravel性能不怎么样,文档也并不是特别丰富。

    $ wget

    • HHVM只能以单个用户运行,这意味着(在共享环境中)安全性差了
    • HHVM在崩溃后不会自动重启,而不幸的是,它至今仍然经常发生
    • HHVM在启动时使用大量内存,虽然,它和同规模的PHP-FPM比较,单个请求的内存使用量更低

    用Yii的话,语法有点啰嗦,前后端代码分离有点小麻烦,不过性能是非常好的,而且已经有众多国内大公司在使用了,出现意外可以快速的找到大牛答疑解惑。

    $ tar zxf siege-latest.tar.gz      解压安装

    很显然,你不得不根据你的(或者更确切地说是你的站点)的需求采取折中方案,然而这值得吗?切换到HHVM后,你期望获得多少性能改善呢?

    不如做个简单的性能评测,选个性能出色的总不会出错

    $ cd siege-4.0.2/      进入安装路径下

    在Kinsta,我们真的想要测试所有新技术,并通常会优化这一切来为我们的客户提供最佳的环境。今天,我最终花了点时间来配置测试环境并进行了一些测试来对比两个不同的构建,一个是全新出炉的WordPress安装,另外一个则添加了大量内容的WooCommerce!为了计量脚本的运行时间,我只是简单地添加了

    性能测试

    $ ./configure      配置安装路径(默认路径)

    <?php timer_stop(1); ?>
    

    测试时间: 2016年05月06日

    $ sudo make     编译

    这一行到footer.php的/body标记前。

    测试工具: siege (因为MAC系统的ab总是会出现 pr_socket_recv: Connection reset by peer (54) 的错误,所以选择了siege)

    $ sudo make install      编译安装

    这里是配置环境的详情:

    测试机器: MacPro Core i5 处理器/8GB内存/256GB SSD闪存

    查看是否安装成功:

    • DigitalOcean 4GB 雨滴容器 (2 CPU核心, 4GB RAM)
    • Ubuntu 14.04, MariaDB10
    • 测试站点: 已导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1
    • PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d)和HHVM 3.2.0 (版本是PHP 5.6.99-hhvm)

    测试环境: Apache PHP5.6

    查看siege安装路径:

    没有进一步大费周章,这些就是我的测试结果,数值越低越好,以秒为单位:

    框架版本: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

    $ which siege

    DigitalOcean 4GB 雨滴容器

    单位是秒,运行10次,越低越好

    图片 2

    看起来似乎PHP-NG在它首次运行后就获得了峰值性能!HHVM需要更多几次重载,但是它们的性能貌似差不多!我等不及PHP-NG合并到开发主干了!:)

    一分钟命中数,越高越好。

    图片 3

    PHP 5.5.15禁用OpCache

    • 执行: 236 hits
    • 可用性: 100.00 %
    • 消耗时间: 59.03 secs
    • 传输的数据: 2.40 MB
    • 回应时间: 2.47 secs
    • 执行率: 4.00 trans/sec
    • 吞吐量: 0.04 MB/sec
    • 并发数: 9.87
    • 成功的执行: 236
    • 失败的执行: 0
    • 最长执行: 4.44
    • 最短执行: 0.48

    PHP 5.5.15启用OpCache

    • 执行: 441 hits
    • 可用性: 100.00 %
    • 消耗时间: 59.55 secs
    • 传输的数据: 4.48 MB
    • 回应时间: 1.34 secs
    • 执行率: 7.41 trans/sec
    • 吞吐量: 0.08 MB/sec
    • 并发数: 9.91
    • 成功的执行: 441
    • 失败的执行: 0
    • 最长执行: 2.19
    • 最短执行: 0.64

    PHP 5.6 RC2禁用OpCache

    • 执行: 207 hits
    • 可用性: 100.00 %
    • 消耗时间: 59.87 secs
    • 传输的数据: 2.10 MB
    • 回应时间: 2.80 secs
    • 执行率: 3.46 trans/sec
    • 吞吐量: 0.04 MB/sec
    • 并发数: 9.68
    • 成功的执行: 207
    • 失败的执行: 0
    • 最长执行: 3.65
    • 最短执行: 0.54

    PHP 5.6 RC2启用OpCache

    • 执行: 412 hits
    • 可用性: 100.00 %
    • 消耗时间: 59.03 secs
    • 传输的数据: 4.18 MB
    • 回应时间: 1.42 secs
    • 执行率: 6.98 trans/sec
    • 吞吐量: 0.07 MB/sec
    • 并发数: 9.88
    • 成功的执行: 412
    • 失败的执行: 0
    • 最长执行: 1.93
    • 最短执行: 0.34

    HHVM 3.2.0(版本是PHP 5.6.99-hhvm)

    • 执行: 955 hits
    • 可用性: 100.00 %
    • 消耗时间: 59.69 secs
    • 传输的数据: 9.18 MB
    • 回应时间: 0.62 secs
    • 执行率: 16.00 trans/sec
    • 吞吐量: 0.15 MB/sec
    • 并发数: 9.94
    • 成功的执行: 955
    • 失败的执行: 0
    • 最长执行: 0.85
    • 最短执行: 0.23

    PHP-NG启用OpCache(构建: Jul 29 2014)

    • 执行: 849 hits
    • 可用性: 100.00 %
    • 消耗时间: 59.88 secs
    • 传输的数据: 8.63 MB
    • 回应时间: 0.70 secs
    • 执行率: 14.18 trans/sec
    • 吞吐量: 0.14 MB/sec
    • 并发数: 9.94
    • 成功的执行: 849
    • 失败的执行: 0
    • 最长执行: 1.06
    • 最短执行: 0.13

    注意:这里节略了前一次的测试结果(有误),如感兴趣请访问原文查看。

    测试原则: 每次测试循环5次,取中等数据

    /usr/local/bin/siege

    补充说明:所有项目都是让在子目录中

    查看siege版本:

    结果说明

    $ siege -V

    Transactions: 2119 hits 处理请求总数量

    SIEGE 4.0.2

    Availability: 96.85 % 可用性

    参数说明:

    Elapsed time: 9.74 secs 运行时间

    可以使用"siege -h"命令来查看帮助信息:

    Data transferred: 1.31 MB 数据传输量

    $ siege -h

    Response time: 0.60 secs 响应时间

    SIEGE 4.0.2     版本号

    Transaction rate: 217.56 trans/sec 每秒处理效率

    Usage: siege [options]

    Throughput: 0.13 MB/sec 每秒处理数据

     siege [options] URL

    Concurrency: 130.28 并发

     siege -g URL

    Successful transactions: 2162 成功的请求

    Options:

    Failed transactions: 69 失败的请求

    -V, --version    VERSION, prints the version number.

    Longest transaction: 2.85 最长的单个请求

    -h, --help    HELP, prints this section.

    Shortest transaction: 0.01 最短的单个请求

    -C, --config    CONFIGURATION, show the current config.

    开始测试

    -v, --verbose    VERBOSE, prints notification to screen.

    增加一个控制器,并在控制器中输入10000次HelloWorld

    -q, --quiet    QUIET turns verbose off and suppresses output.

    并发50循环10次:

    -g, --get     GET, pull down HTTP headers and display the

    首先向我们走来的是ThinkPHP,看上去还行

          transaction. Great for application debugging.

    Transactions: 500 hits

    -c, --concurrent=NUM  CONCURRENT users, default is 10

    Availability: 100.00 %

    -r, --reps=NUM   REPS, number of times to run the test.

    Elapsed time: 2.81 secs

    -t, --time=NUMm   TIMED testing where "m" is modifier S, M, or H

    Data transferred: 52.45 MB

          ex: --time=1H, one hour test.

    Response time: 0.26 secs

    -d, --delay=NUM   Time DELAY, random delay before each requst

    Transaction rate: 177.94 trans/sec

    -b, --benchmark   BENCHMARK: no delays between requests.

    Throughput: 18.67 MB/sec

    -i, --internet   INTERNET user simulation, hits URLs randomly.

    Concurrency: 47.10

    -f, --file=FILE   FILE, select a specific URLS FILE.

    Successful transactions: 500

    -R, --rc=FILE    RC, specify an siegerc file

    Failed transactions: 0

    -l, --log[=FILE]   LOG to FILE. If FILE is not specified, the

    Longest transaction: 0.48

          default is used: PREFIX/var/siege.log

    Shortest transaction: 0.03

    -m, --mark="text"   MARK, mark the log file with a string.

    然后是Laravle,嗯,略微有些失望

          between .001 and NUM. (NOT COUNTED IN STATS)

    Transactions: 500 hits

    -H, --header="text"  Add a header to request (can be many)

    Availability: 100.00 %

    -A, --user-agent="text" Sets User-Agent in request

    Elapsed time: 13.33 secs

    -T, --content-type="text" Sets Content-Type in request

    Data transferred: 52.45 MB

    查看当前的配置信息

    Response time: 1.27 secs

    $ siege -C

    Transaction rate: 37.51 trans/sec

    使用说明:

    Throughput: 3.93 MB/sec

    (1) 直接请求URL:

    Concurrency: 47.55

    $ siege -c 20 -r 10

    Successful transactions: 500

    参数说明: -c 是并发量,并发数为20人 -r 是重复次数, 重复10次

    Failed transactions: 0

    (2) 随机选取urls.txt中列出所有的网址

    Longest transaction: 3.64

    在当前目录下创建一个名为"urls-demo.txt"的文件。 文件里边填写URL地址,可以有多条,每行一条,比如:

    Shortest transaction: 0.07

    # URLs:

    最后赛前比较看好的Yii

    Transactions: 500 hits

    Availability: 100.00 %

    // 执行 $ siege -c 5 -r 10 -f urls-demo.txt

    Elapsed time: 4.84 secs

    $ siege -c 5 -r 10 -f /Users/WangYoungTom/temp/urls-demo.txt

    Data transferred: 52.45 MB

    参数说明: -c 是并发量,并发数为5人 -r 是重复次数, 重复10次 -f 指定使用文件,urls-demo.txt就是一个文本文件,每行都是一个url,会从里面随机访问的

    Response time: 0.46 secs

    Siege从Siege-V2.06起支持POST和GET两种请求方式。 如果想模拟POST请求,可以在urls-demo.txt中安装一下格式填写URL:

    Transaction rate: 103.31 trans/sec

    # URL (POST):

    Throughput: 10.84 MB/sec

    POST UserId=XXX&StartIndex=0&OS=Android&Sign=cff6wyt505wyt4c

    Concurrency: 47.65

    POST UserId=XXX&StartIndex=0&OS=iOS&Sign=cff63w5905wyt4c

    Successful transactions: 500

    使用示例:

    Failed transactions: 0

    请求

    Longest transaction: 0.88

    $ siege --concurrent=10 --reps=5 --delay=3

    Shortest transaction: 0.04

    $ siege -c 10 -r 5 -d 3

    并发200循环10次:

    结果说明:

    首先是ThinkPHP

    Transactions: 153 hits (处理次数,本次处理了153此请求)

    Transactions: 1977 hits

    Availability: 100.00 % (可用性/成功次数的百分比,比如本次100%成功)

    Availability: 98.85 %

    Elapsed time: 17.22 secs (运行时间,本次总消耗17.22秒)

    Elapsed time: 10.03 secs

    Data transferred: 7.70 MB (数据传送量)

    Data transferred: 207.40 MB

    Response time: 0.17 secs (响应时间)

    Response time: 0.95 secs

    Transaction rate: 8.89 trans/sec (处理请求频率,每秒钟处理8.89次请求)

    Transaction rate: 197.11 trans/sec

    Throughput: 0.45 MB/sec (吞吐量,传输速度)

    Throughput: 20.68 MB/sec

    Concurrency: 1.54 (实际最高并发连接数)

    Concurrency: 187.68

    Successful transactions: 153 (成功的传输次数)

    Successful transactions: 1977

    Failed transactions: 0 (失败的传输次数)

    Failed transactions: 23

    Longest transaction: 0.70 (处理传输是所花的最长时间)

    Longest transaction: 1.22

    Shortest transaction: 0.02 (处理传输是所花的最短时间)

    Shortest transaction: 0.02

    使用实例:

    然后是Laravel

    $ siege -c 5 -r 10

    Transactions: 1890 hits

    Transactions:    386 hits

    Availability: 94.50 %

    Availability:    100.00 %

    Elapsed time: 51.85 secs

    Elapsed time:    37.40 secs

    Data transferred: 198.27 MB

    Data transferred:   19.47 MB

    Response time: 4.88 secs

    Response time:    0.43 secs

    Transaction rate: 36.45 trans/sec

    Transaction rate:   10.32 trans/sec

    Throughput: 3.82 MB/sec

    Throughput:    0.52 MB/sec

    Concurrency: 178.00

    Concurrency:    4.45

    Successful transactions: 1890

    Successful transactions:   386

    Failed transactions: 110

    Failed transactions:    0

    Longest transaction: 26.01

    Longest transaction:   2.38

    Shortest transaction: 0.07

    Shortest transaction:   0.02

    最后是Yii

    参考链接:

    Transactions: 1996 hits

    官网

    Availability: 99.80 %

    文档

    Elapsed time: 18.95 secs

    Data transferred: 209.39 MB

    内容有稍微调整和修改

    Response time: 1.79 secs

    [END]

    Transaction rate: 105.33 trans/sec

    Throughput: 11.05 MB/sec

    Concurrency: 188.57

    Successful transactions: 1996

    Failed transactions: 4

    Longest transaction: 3.29

    Shortest transaction: 0.10

    没想到在没有优化的情况下,ThinkPHP的速度是最快的,Yii略微多一些,Laravel步履蹒跚的跑完了测试。结果是有些出人意料的,不过上述的测试只代表了开发环境,下面会对框架进行优化,模拟线上环境。

    优化框架

    ThinkPHP:

    APP_DEBUG改为false

    Laravel:

    APP_DEBUG改为false

    php artisan route:cache

    php artisan optimize

    php artisan config:cache

    composer dumpautoload -o

    Yii:

    YII_DEBUG改为false

    composer dumpautoload -o

    并发200循环10次:

    ThinkPHP

    Transactions: 1655 hits

    Availability: 82.75 %

    Elapsed time: 8.21 secs

    Data transferred: 173.62 MB

    Response time: 0.69 secs

    Transaction rate: 201.58 trans/sec

    Throughput: 21.15 MB/sec

    Concurrency: 139.29

    Successful transactions: 1655

    Failed transactions: 345

    Longest transaction: 7.83

    Shortest transaction: 0.00

    Laravel:

    Transactions: 1520 hits

    Availability: 76.00 %

    Elapsed time: 34.95 secs

    Data transferred: 159.45 MB

    Response time: 3.15 secs

    Transaction rate: 43.49 trans/sec

    Throughput: 4.56 MB/sec

    Concurrency: 136.84

    Successful transactions: 1520

    Failed transactions: 480

    Longest transaction: 19.18

    Shortest transaction: 0.00

    Yii:

    Transactions: 1704 hits

    Availability: 85.20 %

    Elapsed time: 15.16 secs

    Data transferred: 178.76 MB

    Response time: 1.46 secs

    Transaction rate: 112.40 trans/sec

    Throughput: 11.79 MB/sec

    Concurrency: 164.21

    Successful transactions: 1704

    Failed transactions: 296

    Longest transaction: 9.04

    Shortest transaction: 0.00

    比较奇怪的一点,当框架关掉调试模式后都出现了较多失败的情况。不过明显的看到,Laravel进行简单的优化后,性能大大的提升了,但还是低于其他两个框架。

    结论

    在测试的过程中,其他我的心情是沮丧的,感觉自己的三观世界已经崩塌了,崩塌至渣。

    ThinkPHP的性能比Yii高出一倍,比Laravel高出近四倍

    Yii的性能比较中庸,但是在测试中会明显发现请求失败的情况比其他两个框架要少

    Laravel依旧优雅,不过性能堪忧,用网友的话形容比较好 学之者生用之者死

    最后

    我的项目最后使用了自建框架进行开发,得益于composer的强大,开发的过程非常顺利,最后附上自有框架在200并发10次循环的数据,框架开源但是更新比较忙,欢迎在github上搜索PPPHP,和我一起搭建框架。

    Transactions: 1672 hits

    Availability: 83.60 %

    Elapsed time: 6.18 secs

    Data transferred: 175.40 MB

    Response time: 0.57 secs

    Transaction rate: 270.55 trans/sec

    Throughput: 28.38 MB/sec

    Concurrency: 153.16

    Successful transactions: 1672

    Failed transactions: 328

    Longest transaction: 4.57

    Shortest transaction: 0.01

    如果你觉得眼前需要更好的提高你可以来千锋学PHP,国内排名第一的PHP机构。

    本文由威尼斯手机平台登陆发布于最新文章,转载请注明出处:在HHVM同伴们帮助下,不以为奇的压力测验工具备众多

    关键词: