gpt4 book ai didi

php - 如何提高 PHP 相对于 HTML 的速度?

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:53 25 4
gpt4 key购买 nike

我有一个从 Memcached 获取 HTML 的 PHP 文件并将其提供给用户。当我这样测试时:

ab -n 1000 -c 100 http://website.com/test.php

它每秒执行 22 个请求。

但是当我将相同的 HTML 放入 HTML 文件并进行此测试时:

ab -n 1000 -c 100 http://website.com/test.html

我每秒收到大约 4500 个请求。

我需要坚持使用 PHP,因为第一次我需要生成 HTML,而下一次我只是从 Memcached 获取生成的 HTML。此外,我显示的 HTML 对于每个其他用户都是不同的(根据 $_GET ['user_id'] 值识别)。有什么方法可以提高 RPS 吗?更接近于提供纯 HTML?

我使用 lighttpd作为网络服务器。

最佳答案

思路(待续....):
首先,我会测试问题是否由并发触发或显着恶化。使用 -n 1000 -c 100 测试,您的比率为 22/4500。 -n 1000 -c 10-n 1000 -c 1 怎么样?

然后我会再试一次 + 跟踪内存消耗、磁盘 I/O 和 CPU 使用情况。这是否是明显的限制因素?

然后我会测试简单的 PHP 脚本:

  • 一个空脚本
  • 根本没有脚本,但是 test.html 的内容被复制到 test.php
  • 只提供一个小的 Memcached 项目。尽可能简单的一个脚本,构造Memchached对象,获取一个item,不测试,不过期,不添加,只有echo $mc->get(string $key)

与 test.html 相比如何?

编辑:

我们以Web Server Performance Comparison: LiteSpeed 2.0 VS为例作为比较点。该基准测试是“针对”另一个“竞争性”网络服务器产品执行的,但目前我们假设它们没有(太)有偏见;-)

他们有一个

  • CPU:单个 Intel Xeon 2.4 GHz/533 MHz FSB/512 KB L2 缓存
  • 内存:256 MB ECC PC2700
  • 硬盘:36 GB 10K RPM SCSI 硬盘 Seagate ST336607LW
  • 网卡:板载英特尔 PRO/1000 千兆适配器

lighthttpd 每秒提供 15475 个 100 字节的文件,脚本 helloworld.php 每秒 1593 次,phpinfo.php 每秒 399 次(均为 FastCGI )。这是大约 1:10 (hello world) 或 1:40 (phpinfo) 的比例。 “你”的比例是22:4500~1:200。更奇怪的是,脚本更改时它不会更改。您的“真实”脚本或空的 PHP 脚本,无论总是 1:22。这大大提高了“陌生因素”(即使测试不相同)。

首先,我会仔细检查 PHP 是否在 FastCGI 支持下编译,参见 http://www.fastcgi.com/docs/faq.html#PHP .然后我将使用测试中提到的简单 C/C++ FastCGI 程序测试“我的”lighthttpd,一个真正简单的“hello world”。在 http://www.fastcgi.com/devkit/doc/fastcgi-prog-guide/ch2c.htm#4263 有一个例子.如果这个扩展“很好”,即比你的 PHP FastCGI 好得多,我会尝试使用“几乎没有运行”的 PHP 版本,即用 --disable-all 编译并且只有那些模块(重新)active 和 built-in 是启动 PHP 并让它打印“hello world”所必需的。也使用默认的 php.ini。这会改变什么吗?

关于php - 如何提高 PHP 相对于 HTML 的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1497136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com