【发布时间】:2009-11-17 08:31:47
【问题描述】:
我熟悉 Javascript 中的缩小概念以及空格对 JS 文件大小的影响,但该概念不适用于 PHP 脚本吗?
空格会使 php 脚本文件变大吗?我们可以缩小 php 脚本吗?或者这样做没有意义,因为 php 源代码中的空格根本不影响任何东西?
【问题讨论】:
标签: php
我熟悉 Javascript 中的缩小概念以及空格对 JS 文件大小的影响,但该概念不适用于 PHP 脚本吗?
空格会使 php 脚本文件变大吗?我们可以缩小 php 脚本吗?或者这样做没有意义,因为 php 源代码中的空格根本不影响任何东西?
【问题讨论】:
标签: php
这样做没有意义,因为用户不会下载您的 PHP 文件。无需缩小服务器端脚本。
【讨论】:
minification 可能会提高解析的性能。但是,如果您采用这种方式,最好使用像 APC 这样的字节码缓存工具
如果您优化了 PHP 文件中的空白(读入和编译文件),速度会有小幅提升,但与其他文件相比,它微不足道 strong>(也就是说,您可以使用适当的字符串方法更多地重写所有不必要的 'preg_replace')。
实际上,有可能预编译一个 PHP 文件并将优化后的代码呈现给 PHP 解释器。搜索 Zend 编码器或 IonCube。但是,源文件不再可读。
对于 JS 文件,速度的提升几乎 100% 来自于较小的通过 HTTP 的加载时间。
【讨论】:
从 PHP 脚本中删除空格并没有真正的性能优势。解释器只是忽略它。
如果你真的想删除它,运行
php -w foo.php > foo_small.php
将删除空格和 cmets。
将对最终用户(假设是网络环境)的性能产生影响的是输出的大小。正常的事情是使用压缩 - 查看设置zlib.output_compression=TRUE
或者ob_gzhandler。
【讨论】:
将以下内容保存到文件test.php
<?php
//Hello I'm comment
echo "Some code";
# There are spaces on the beginning of the line
if (isset($_GET['a'])){
var_dump($_GET['a']);
} else {
/*
Some other comment
*/
die('oooops');
}
运行 $ php -w test.php 它将显示带有剥离 cmets 和空白的源代码
<?php
echo "Some code"; if (isset($_GET['a'])){ var_dump($_GET['a']); } else { die('oooops'); }
无论如何,您应该使用字节码缓存库来加速您的代码。删除空格是低效的方法。
【讨论】:
如果您的 php 程序也包含 html 代码,您可能希望它缩小它,但我不建议这样做,因为现在您必须保留同一个文件的两份副本,一份用于开发,以便您可以理解和一个用于服务器。最好使用其他替代方法来提高速度,如果绝对需要,请使用这种方式。
【讨论】: