debian安装vld来查看Opcode,PHP调优。
一: 我的环境: Debian 7 (wheezy) x64 PHP 5.4.4-14 (apt-get 而来) Apache/2.2.22 (同上,非源码编译) 二 :安装vld. (# 代表是root下,下面不再说明. wget过来的是0.11.2的版本) 首先我用pecl install channel://pecl.php.net/vld-0.10.1 安装了一次
一: 我的环境:
Debian 7 (wheezy) x64
PHP 5.4.4-14 (apt-get 而来)
Apache/2.2.22 (同上,非源码编译)
二 :安装vld. (# 代表是root下,下面不再说明. wget过来的是0.11.2的版本)
首先我用pecl install channel://pecl.php.net/vld-0.10.1 安装了一次,最后make install的时候失败了。于是换一种
#wget http://pecl.php.net/get/vld
#tar zxvf vld
#cd vld-0.11.2
#phpize
#./configure
#make install
现在去查看下/usr/lib/php5/20100525 下是否有vld.so
三:加到php里面去
#cd /etc/php5/mods-available 到php的模块目录去
#touch vld.ini 建个叫vld.ini 的配置文件
#echo -ne "; configuration for php VLD module \n; priority=20 \nextension=/usr/lib/php5/20100525/vld.so \n" > vld.ini 这里我比较懒。直接一句就把内容写完了,里面的vld.so是之前编译完后的vld.so 文件
#cd /etc/php5/conf.d
#ln -s ../mods-available/vld.ini 20-vld.ini 给vld.ini 做一个软链接
#/etc/init.d/apache2 restart 重启下apache就行了
四:使用vld
例子很简单的。新建两个php文件,输出一个用 . ,一个用 , 连起来
1.php
<?php echo "Hello"." "."world!" ?>
<?php echo "Hello"," ","world!" ?>
在shell里面执行
#php -dvld.active=1 1.php
#php -dvld.active=1 2.php
然后可以看到
root@debian:/home/www$ php -dvld.active=1 1.php Finding entry points Branch analysis from position: 0 Return found filename: /home/www/1.php function name: (null) number of ops: 4 compiled vars: none line # * op fetch ext return operands --------------------------------------------------------------------------------- 1 0 > CONCAT ~0 'Hello', '+' 1 CONCAT ~1 ~0, 'world%21' 2 ECHO ~1 2 3 > RETURN 1 branch: # 0; line: 1- 2; sop: 0; eop: 3 path #1: 0,
root@debian:/home/www$ php -dvld.active=1 2.php Finding entry points Branch analysis from position: 0 Return found filename: /home/www/2.php function name: (null) number of ops: 4 compiled vars: none line # * op fetch ext return operands --------------------------------------------------------------------------------- 1 0 > ECHO 'Hello' 1 ECHO '+' 2 ECHO 'world%21' 2 3 > RETURN 1 branch: # 0; line: 1- 2; sop: 0; eop: 3 path #1: 0, Hello world!root@debian:/home/www$
上面就包含了PHP运行时所执行的Opcode信息,输出了执行的操作的个数,所有的变量集输出(compiled vars),还有一个包含执行操作的PHP代码行号,执行操作的次数(#)以及所执行操作的名称(op)。
我们重点关注关键项的数量,op的个数以及执行顺序。number of ops (OP数)标明了代码运行时在Opcode层级执行的操作总个数。在上面两个文件都是4次。
可以看到 1.php 执行用 "." 连接的时候,用了两个CONCAT(连接调用)和一个ECHO调用。
2.php 执行用 "," 连接的时候,没有用CONCAT操作,只有比CONCAT调用成本更低的ECHO调用。
所以这里我们可以得出一个简单的结论,就是用 "," 连接比用 "." 连接要快。
实际在编写PHP代码的时候,我们需要考虑是empty快还是isset好,是,快还是 .好,我们可以通过VLD来看看OP数是多少,具体都执行了什么操作,这样就可以得到正确的合适的选择了。
一些有用的参数:
-dvld.active 是否在执行PHP时激活VLD挂钩,默认为0,表示禁用。可以使用-dvld.active=1启用。 -dvld.skip_prepend 是否跳过php.ini配置文件中auto_prepend_file指定的文件, 默认为0,即不跳过包含的文件,显示这些包含的文件中的代码所生成的中间代码。此参数生效有一个前提条件:-dvld.execute=0 -dvld.skip_append 是否跳过php.ini配置文件中auto_append_file指定的文件, 默认为0,即不跳过包含的文件,显示这些包含的文件中的代码所生成的中间代码。此参数生效有一个前提条件:-dvld.execute=0 -dvld.execute 是否执行这段PHP脚本,默认值为1,表示执行。可以使用-dvld.execute=0,表示只显示中间代码,不执行生成的中间代码。 -dvld.format 是否以自定义的格式显示,默认为0,表示否。可以使用-dvld.format=1,表示以自己定义的格式显示。这里自定义的格式输出是以-dvld.col_sep指定的参数间隔 -dvld.col_sep 在-dvld.format参数启用时此函数才会有效,默认为 “\t”。 -dvld.verbosity 是否显示更详细的信息,默认为1,其值可以为0,1,2,3 其实比0小的也可以,只是效果和0一样,比如0.1之类,但是负数除外,负数和效果和3的效果一样 比3大的值也是可以的,只是效果和3一样。 -dvld.save_dir 指定文件输出的路径,默认路径为/tmp。 -dvld.save_paths 控制是否输出文件,默认为0,表示不输出文件 -dvld.dump_paths 控制输出的内容,现在只有0和1两种情况,默认为1,输出内容

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.
