gpt4 book ai didi

使用 if 语句提高 PHP 速度

转载 作者:行者123 更新时间:2023-12-02 01:21:26 24 4
gpt4 key购买 nike

所以我正在开发一个用旧式(非 OOP)PHP 编写的项目,并且在不久的将来不会完全重写。目前它的问题之一是速度慢 — 大部分时间都花在需要基于启动过程中的位置的 100 多个文件上。

我想知道我们是否可以将其(在部署时,当然不是开发时)压缩为一个或两个文件,其中包含所有刚刚内置的 require 文本。但是,因为有这么多许多行代码并未用于每个页面,我想知道这样做是否会适得其反。

我认为,其核心问题是:

<?php
echo 'hello world!';
?>

<?php
if(FALSE) {
// thousands of lines of code here
}
echo 'hello world!';
?>

如果是这样,慢多少?

(此外,如果由于其他原因我上面概述的内容是一个坏主意,请告诉我。)

最佳答案

两者之间的差异可以忽略不计。如果当前大部分执行时间都花在了请求文件上,那么通过使用像 APC 这样的 optcode 缓存,您可能会看到显着的提升。 ,如果你还没有。

除此之外 - 基准测试,找出瓶颈到底在哪里。根据我的经验,requires 通常是旧式过程 PHP 应用程序中最慢的部分,但即使包含许多包含的文件,如果这些文件加起来构成一个“慢”应用程序,我也会感到惊讶。

编辑:好的,一个快速但肮脏的基准测试。我创建了三个“hello world”PHP 脚本,如示例所示。第一个(basic.php)只是回显字符串。第二个 (complex.php) 包含一个 if false 语句,其中包含从另一个应用程序粘贴的大约 5000 行 PHP 代码。第三个 (require.php) 包含相同的 if 语句,但在另一个文件的约 5000 行代码中需要。

basic.php 和complex.php 之间的页面生成时间(通过 microtime() 测量)大约为 ~0.000004 秒,所以实际上并不重要。来自 apache bench 的一些更全面的结果:

                     without APC         with APC                req/sec   avg (ms)  req/sec   avg (ms)basic.php:     7819.87     1.277    6960.49    1.437complex.php:    346.82     2.883     352.12    2.840require.php:   6819.24     1.446    5995.49    1.668

APC 在这里没有做很多事情,但会耗尽内存,但在现实世界的应用程序中可能会出现不同的情况。

关于使用 if 语句提高 PHP 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3897510/

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