PHP小组:Google提供的网站加速PHP技巧真是胡说八道_PHP教程
BKJIA快译】Google小组上周共享了其网站加速的技巧大全,其中包括了一些PHP性能技巧。然而这些PHP性能技巧在PHP社区中引起了一阵轩然大波,PHP小组立刻写了一篇公开信给这些性能技巧“抓虫”。有关Google的建议,BKJIA这几日做了整理,做出文章《加速,加速,再加速:来自Google的网站加速技巧大全》。其中第四页的后半部分就是专门讲PHP相关的性能技巧,在阅读本文之前可以先熟悉一下。
以下是来自PHP小组的信件译文:
PHP小组:这篇文章中所给的建议全部都是错误的。
1. 没有原因尽量不要复制变量
PHP 4和5核心的Zend引擎使用了一个名为“copy-on-write”的内存管理系统。也就是说,无论你将一个变量的值赋值给另一个变量多少次,只要你不改变数值,数据是不会被复制的。范例:
<ol class="dp-c"> <li class="alt"><span><span class="vars"><font color="#dd0000">$data</font></span><span> = </span><span class="func">str_repeat</span><span>(</span><span class="string"><font color="#0000ff">"*"</font></span><span>, 512 * 1024); </span><span class="comment"><font color="#008200">// synthesize 512K of data </font></span><span> </span></span></li> <li class=""> <span></span><span class="vars"><font color="#dd0000">$memory_used_before</font></span><span> = memory_get_usage(); </span> </li> <li class="alt"> <span></span><span class="vars"><font color="#dd0000">$more_data</font></span><span> = </span><span class="vars"><font color="#dd0000">$data</font></span><span>; </span> </li> <li class=""> <span></span><span class="vars"><font color="#dd0000">$memory_used_after</font></span><span> = memory_get_usage(); </span> </li> <li class="alt"> <span>print </span><span class="string"><font color="#0000ff">"Before: {$memory_used_before}\nAfter: {$memory_used_after}\n"</font></span><span>; </span> </li> </ol>
有thread-safety及调试功能的PHP 5.3下:
之前:853968
之后:854236
没有thread-safety及调试功能的PHP 5.2下:
之前:581912
之后:581976
也就是,调试模式下有268字节的差别,正常模式下普遍使用的)有64字节的差别。这和Google文中所述BKJIA编者注:Google原文的描述中,复制变量会“导致双倍的内存消耗”)相差甚远。
需要注意的是,PHP代码中坚决禁止在没有恰当过滤的情况下将用户提供的变量原本内容进行echo或者存储。
2. 为长字符串使用单引号
针对PHP 5.2及5.3的基准测试显示,虽然双引号使用窜改interpolation)而单引号使用连锁concatenation),这两个的速度是完全一致的甚至双引号常常会更快一些)。当使用没有包含变量的普通字符串时,使用双引号的性能要明显占优。
3. 使用echo而非print
这两个方法的运行速度取决于你的PHP是如何设置在host上的。
4. 不要与echo一起使用concatenation连锁)
事实正好相反。新的引擎处理多条echo的方法,导致在echo中使用concatenation实际上会比较快。
5. 使用switch/case替代if/else
最后,这句建议是彻底的胡说八道。决定在哪里使用switch/case或者if/else完全取决于编码习惯,他们的运行速度基本一致,除了在某些特定的情况下。
事实上,在更古老的PHP版本下PHP 3及很老的PHP 4版本)这些大部分建议是正确的,然而在新一代的PHP下,这些绝对是错误的。
- 加速,加速,再加速:来自Google的网站加速技巧大全
- 谷歌启动Web加速计划 拟改进TCP/IP和HTTP协议
- Google研究小组最新报告:互联网上,速度最重要!
- Google将推出开发者社区 改善Web性能
- Google面向开发者推出网页加速工具Page Speed

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

AI Test Kitchen de Google, qui comprend une suite d'outils de conception d'IA avec lesquels les utilisateurs peuvent jouer, est désormais ouvert aux utilisateurs dans plus de 100 pays à travers le monde. Cette décision marque la première fois que de nombreuses personnes dans le monde pourront utiliser Imagen 3, Google

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.
