绩效管理
绩效管理
艾伦Vorzeitige Optimierung是死Wurzel尤贝尔。
Vielleicht所Du这本Zitat肖恩einmal gelesen。但我,es vollstandig zitieren:
我们sollten死克雷能Effizienzgewinne vergessen,请我们在97% der Falle: Vorzeitige Optimierung是死Wurzel艾伦尤贝尔。Dennoch sollten我们unsere Chancen贝的估计值不verpassen kritischen 3%。
—Donald Knuth
Selbst kleine Performance-Steigerungen可以在靠窗户更麦臣,insbesondere贝E-Commerce-Websites。Nachdem死嫩Gastebuchanwendung毛皮死黄金时段bereit坚持,小姑娘爹妈看清,是不是我们uberprufen可以在您的性能。
Der beste Weg, Performance-Optimierungen祖茂堂法登,是死Verwendung下进行分析器。死是heutzutage beliebteste选项黑焰(沃勒尔Haftungsausschluss:基础的欧什我des Blackfire-Projekts)。
黑焰
黑焰besteht来自mehreren Teilen:
- 静脉客户端der死亡分析auslost (das黑焰CLI-Tool奥得河风景明信片Browsererweiterung毛皮Google Chrome奥得河Firefox);
- 静脉代理,der Daten aufbereitet和aggregiert, bevor er您苏珥Anzeige黑焰。io sendet;
- 明信片PHP-Erweiterung(死探针),死穴php代码instrumentiert。
嗯麻省理工黑焰arbeiten祖能帮你们杜你先anmelden。
Installiere黑焰再见,我们向lokalen电脑,indem Du das folgende Schnellinstallationsskript ausfuhrst:
1
美元curl https://installer.blackfire.io/installer。上海| bash
这位安装ladt das黑焰CLI工具herunter installiert es。
das getan要是坚持,installiere死PHP-Probe贝艾伦verfugbaren PHP-Versionen:
1
美元sudo黑焰php:安装
和aktiviere死PHP-Probe毛皮unser Projekt:
1 2 3 4 5 6 7 8 9 10
- - - a / php . ini+ + + b / php . ini@@ 7 3 + 7 7 @@会话。use_strict_mode = realpath_cache_ttl = 3600 zend.detect_unicode =关闭xdebug.file_link_format = vscode: / /文件/ % f: % l++(黑焰)+ # php_blackfire使用。dll在Windows上+扩展= blackfire.so
Starte窝网络服务器neu,该死的PHP黑焰拉登萤石:
1 2
美元ob娱乐下载symfony服务器:停止美元ob娱乐下载symfony服务器:开始- d
Das黑焰CLI工具弄乱麻省理工学院Deinen personlichen客户端凭据konfiguriert了(嗯你Projektanalyse螺母我们personlichen Konto祖茂堂speichern)。杜代祷您der oben再见设置/凭证
Seite。Fuhre窝folgenden Befehl来自,indem Du死Platzhalter ersetzt:
1
美元黑焰客户:配置——客户机id = xxx client-token = xxx
窝在码头工人Blackfire-Agenten einrichten
Der Blackfire-Agent-Dienst, bereits im Docker-Compose-Stack konfiguriert:
嗯麻省民主党服务器祖茂堂kommunizieren benotigst Du你personlichen服务器凭证(这张identifizieren我们杜你Analysen speichern想——杜kannst pro Projekt进行erstellen);杜代祷您不可或缺der设置/凭证
——“Seite”_。在静脉Speichere您lokalen.env.local
-Datei:
1 2 3 4
美元ob娱乐下载symfony控制台的秘密:集BLACKFIRE_SERVER_ID# xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx美元ob娱乐下载symfony控制台的秘密:集BLACKFIRE_SERVER_TOKEN# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
杜kannst嫩穴neuen容器starten:
1 2
美元docker-compose停止美元docker-compose了-
明信片不funktionierende Blackfire-Installation reparieren
要是Du贝姆Analysieren杯Fehler erhalst, erhohe das Blackfire-Log-Level,嗯weitere Informationen erhalten窝日志中:
1 2 3 4 5 6 7
- - - a / php . ini+ + + b / php . ini@@ -10 3 + 10 4 @@ zend.detect_unicode =[黑焰]# php_blackfire使用。= blackfire.so dll Windows上的扩展+ blackfire.log_level = 4
Starte窝网络服务器neu:
1 2
美元ob娱乐下载symfony服务器:停止美元ob娱乐下载symfony服务器:开始- d
和小姑娘dir ausgeben死日志:
1
美元ob娱乐下载symfony服务器:日志
Analysiere erneut和uberprufe Log-Ausgabe死去。
黑焰auf民主党Produktivsystem konfigurieren
黑焰是standardmaßig在艾伦的平台。sh-Projekten enthalten。
Erstelle死服务器-Zugangsdaten肌萎缩性侧索硬化症生产-Geheimnisse:
1 2 3 4
美元ob娱乐下载symfony控制台的秘密:集BLACKFIRE_SERVER_ID - env =刺激# xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx美元ob娱乐下载symfony控制台的秘密:集BLACKFIRE_SERVER_TOKEN - env =刺激# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
死PHP-Probe是bereits aktiviert,不是不是安德利果汁notwendige PHP-Erweiterungen:
清漆毛皮黑焰konfigurieren
Bevor Du deployst嗯黑焰nutzen祖能帮benotigst Du Moglichkeit的风景明信片,窝清漆http缓存祖茂堂umgehen。不,要是将黑焰聂direkt auf死PHP-Anwendung zugreifen。杜腕努尔autorisierte Anfragen analysieren死·冯·我们lokalen Rechner来。
Finde你aktuelle IP-Adresse艾罗:
1
美元curl https://ifconfig.me/
和verwende您,嗯清漆祖茂堂konfigurieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31
- - - / .platform / config.vcl+ + + b / .platform / config.vcl11 @@ @@ 1、3 + 1+ acl配置文件{+ #授权当地的IP地址(取代IP发现上面)+“192.168.0.1”;+ #授权黑焰服务器+“46.51.168.2”;+“54.75.240.245”;+}+将调用vcl_recv{接头设置要求。backend_hint = application.backend ();设置req.http。Surrogate-Capability =“abc = ESI / 1.0”;@@ 8 6 + 16 16 @@将调用vcl_recv{}返回子(清洗);}++ #不要概要ESI请求+如果(req.esi_level > 0) {+未凝结req.http.X-Blackfire-Query;+}++ #旁路清漆当这个概要文件请求来自一个已知的IP+如果(req.http。X-Blackfire-Query & &客户端。ip ~) {+返回(通过);+}子vcl_backend_response} {
修女kannst Du deployen。
Webseiten analysieren
杜kannst traditionelle Webseiten在Firefox奥得河Google Chrome超级死entsprechenden Erweiterungenanalysieren。
Vergiss走错,窝http缓存我们汪汪汪lokalen Rechner配置/包/ framework.yaml
贝姆Analysieren祖茂堂deaktivieren:不,要是腕Du窝Symfony HTTP-Cache-Layob娱乐下载er anstelle Deines Analysieren以代码。
嗯Dir静脉besser Bild von der性能我Anwendung auf民主党Produktivsystem祖茂堂麦臣solltest杜欧什死“生产”环境analysieren。Standardmaßig verwendet你lokale环境“开发”环境死去,死一张门格额外麻省理工学院西奇特点(hauptsachlich嗯Daten毛皮死Web-Debug-Toolbar和窝Symfony-Profiler祖茂堂sammeln)。ob娱乐下载
请注意
达我们das Produktivsystem analysieren, brauchen我们keine Konfiguration andern, weil我们窝Symfony HTTP-ob娱乐下载Cache-Layer努尔毛皮死Entwicklungsumgebung im vorherigen Kapitel aktiviert抗议。
死Umstellung我lokalen Maschine auf死Produktivumgebung萤石的军队Andern环境变量APP_ENV
在火线.env.local
-Datei erfolgen:
1
APP_ENV =刺激
奥得河du kannst窝服务器:刺激
-Befehl verwenden:
1
美元ob娱乐下载symfony服务器:刺激
Vergiss走错,wieder dev umzustellen汪汪汪,你要是Analyse-Sitzung endet:
1
美元ob娱乐下载symfony服务器:刺激——
API-Ressourcen analysieren
死亡分析der API只是那些SPA erfolgt besser der CLI uber das黑焰CLI工具,das Du zuvor installiert所:
1
美元黑焰旋度的symfony varob娱乐下载:出口ob娱乐下载SYMFONY_PROJECT_DEFAULT_ROUTE_URL被
Der黑焰旋度
-Befehl akzeptiert genau死gleichen Argumente Optionen体育运动旋度。
Performancevergleich
Im Schritt超级“缓存”有我们一张Cache-Ebene hinzugefugt,嗯性能unser代码祖茂堂verbessern死去,但我们有死Auswirkungen der Anderung auf死韦德表现uberpruft还有gemessen。达我们阿莱sehr schlecht达林信德,祖茂堂erraten,是迅速地和langsam坚持,kannst Du情况geraten的风景明信片,der一张Optimierung你Anwendung tatsachlich langsamer macht。
杜solltest总是死Auswirkungen jed Optimierung, Du durchfuhrst死去,analysieren。黑焰macht死潮湿的围网渔船Vergleichsfunktionoptisch einfacher。
Funktionale Black-Box-Tests写作
我们有gesehen,是不是男人麻省理工学院Symfony sob娱乐下载chreibt funktionale测试。麻省理工学院黑焰萤石男人Browser-Szenarien事实贝Bedarf超级坑死Blackfire-Playerausgefuhrt了您能。写作我们静脉Szenario, das杯neuen Kommentar einreicht和他在DEV和超级超级窝E-Mail-Link Admin-Backend auf民主党Produktivsystem validiert。
Erstelle风景明信片.blackfire.yaml
麻省理工学院Datei folgendem目录:
舀出窝Blackfire-Player herunter,嗯das Szenario lokal ausfuhren祖茂堂可以在:
1 2 3
美元curl https://get.blackfire.io/blackfire-player.phar -OLsS美元chmod + x blackfire-player.phar美元cp /home/fabien/Code/github/blackfireio / blackfire.io /播放器/ blackfire-player。phar blackfire-player.phar
在DEV Fuhre这本Szenario来自:
1
美元/ blackfire-player。phar运行——端点= ' symfonyob娱乐下载 var:出口ob娱乐下载SYMFONY_PROJECT_DEFAULT_ROUTE_URL .blackfire。yaml——变量“webmail_url =ob娱乐下载 symfony var:出口MAILER_WEB_URL 2 > / dev / null '”——变量=“env = dev”vv
1
美元rm blackfire-player.phar
奥得河在刺激:
1
美元/ blackfire-player。phar运行——端点= ' symfonyob娱乐下载云:ob直播appenv: url——管——主要的.blackfire。yaml——变量“webmail_url =没有”——变量=“env =刺激”vv
Blackfire-Szenarien能帮欧什Analysen毛皮jeden请求auslosen和性能测试durchfuhren, indem Du das——黑焰
国旗hinzufugst。
性能测试automatisieren
贝姆绩效管理可以es不努尔darum,死性能des vorhandenen代码祖茂堂verbessern sondern欧什darum, sicherzustellen, dass keine Performanceregressionen eingefuhrt了。
Das im vorherigen Abschnitt beschriebene Szenario萤石automatisch在einem连续Integration-Workflow奥得河regelmaßig auf民主党Produktivsystem ausgefuhrt了。
贝的平台。上海能帮死Szenarien ausgefuhrt了靠窗户,neuen分支erstellst奥得河zum Produktivsystem deployst,嗯死性能des neuen代码automatisch祖茂堂uberprufen。
Weiterfuhrendes