av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語(yǔ)言

分析PHP性能調(diào)優(yōu)實(shí)戰(zhàn)

時(shí)間:2025-01-11 15:32:18 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

分析PHP性能調(diào)優(yōu)實(shí)戰(zhàn)

  性能調(diào)優(yōu)時(shí)的最好的選擇是首先確保運(yùn)行盡可能少的代碼。以下是小編整理的分析PHP性能調(diào)優(yōu)實(shí)戰(zhàn),就跟隨小編去了解下吧,想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  性能調(diào)優(yōu)

  不用運(yùn)行的代碼才是絕好的代碼。其他只是好的代碼。所以,性能調(diào)優(yōu)時(shí),最好的選擇是首先確保運(yùn)行盡可能少的代碼。

  OpCode 緩存

  首先,最快且最簡(jiǎn)單的選擇是啟用 OpCode 緩存。OpCode 緩存的更多信息可以在 這里 找到。

  PHP 性能分析第三篇: 性能調(diào)優(yōu)實(shí)戰(zhàn)

  在上圖,我們看到啟用 Zend OpCache 后發(fā)生的情況。最后一行是我們的基準(zhǔn),也即沒(méi)有啟用緩存的情況。

  在中間行,我們看到較小的性能提升,以及內(nèi)存使用量的大幅減少。小的性能提升(很可能)來(lái)自 Zend OpCache 優(yōu)化,而非 OpCode 緩存。

  第一行是優(yōu)化和 OpCode 緩存后結(jié)果,我們看到很大的性能提升。

  PHP 性能分析第三篇: 性能調(diào)優(yōu)實(shí)戰(zhàn)

  現(xiàn)在,我們看看 APC 之前和之后的變化。如上圖所示,跟 Zend OpCache 相比,隨著緩存的建立,我們看到初始(中間行)請(qǐng)求的性能下降,在消耗時(shí)長(zhǎng)與內(nèi)存使用量方面的表現(xiàn)都明顯下降。

  接著,隨之 opcode 緩存的建立,我們看到類(lèi)似的性能提升。

  內(nèi)容緩存

  第二件我們能做的事是緩存內(nèi)容——這對(duì) WordPress 而言小菜一碟。它提供了許多安裝簡(jiǎn)便的插件來(lái)實(shí)現(xiàn)內(nèi)容緩存,包括 WP Super Cache。WP Super Cache 會(huì)創(chuàng)建網(wǎng)站的靜態(tài)版本。該版本會(huì)在出現(xiàn)諸如評(píng)論事件時(shí)依照網(wǎng)站設(shè)置自動(dòng)過(guò)期。(例如,在非常高負(fù)載情況下,您可能會(huì)想禁止任何原因造成的緩存過(guò)期)。

  內(nèi)容緩存只能在幾乎沒(méi)有寫(xiě)操作時(shí)有效運(yùn)行,寫(xiě)操作會(huì)使緩存失效,而讀操作不會(huì)。

  你也應(yīng)該緩存應(yīng)用從第三方 API 處收到的內(nèi)容,從而減少由于 API 可用性導(dǎo)致的延遲與依賴(lài)。 WordPress 有兩個(gè)緩存插件,可以大大提高網(wǎng)站的性能: W3 Total Cache 和 WP Super Cache。

  這兩個(gè)插件都會(huì)創(chuàng)建網(wǎng)站的靜態(tài) HTML 副本,而不是每次收到請(qǐng)求時(shí)再生成頁(yè)面,從而壓縮響應(yīng)時(shí)間。

  如果你正在開(kāi)發(fā)自己的應(yīng)用程序,大多數(shù)框架都有緩存模塊:

  Zend framework 2:Zend\Cache

  Symfony 2:Multiple options

  Laravel 4:Laravel Cache

  ThinkPHP 3.2.3:ThinkPHP Cache

  查詢(xún)緩存

  另一個(gè)緩存選項(xiàng)是查詢(xún)緩存。針對(duì) MySQL,有一個(gè)通用的查詢(xún)緩存幫助極大。對(duì)于其他數(shù)據(jù)庫(kù),將查詢(xún)結(jié)果集緩存在 Memcached 或者 cassandra 這樣的內(nèi)存緩存,也非常有效。

  跟內(nèi)容緩存一樣,查詢(xún)緩存在包含大量讀取操作的場(chǎng)景是最有效的。由于少量的數(shù)據(jù)改動(dòng)就會(huì)使大塊的緩存區(qū)無(wú)效,尤其不能在這種情況下依賴(lài) MySQL 查詢(xún)緩存來(lái)提高性能。

  查詢(xún)緩存或許在生成內(nèi)容緩存時(shí)對(duì)性能有提升。

  如下圖所示,當(dāng)我們開(kāi)啟查詢(xún)緩存后,實(shí)際運(yùn)行時(shí)間減少了 40% ,盡管內(nèi)存使用量沒(méi)有明顯改變。

  現(xiàn)有三種類(lèi)型的緩存選項(xiàng),由 query_cache_type 控制設(shè)置。

  設(shè)置值為 0 或 OFF 將禁用緩存

  設(shè)置值為 1 或 ON 將緩存除了以 SELECT SQL_NO_CACHE 開(kāi)頭之外的所有選擇

  設(shè)置值為 2 或 DEMAND 只會(huì)緩存以 SELECT SQL_CACHE 開(kāi)頭的選擇

  此外,你應(yīng)該將 query_cache_size 設(shè)置為非零值。將它設(shè)置為零將禁用緩存,不管 query_cache_type 是否設(shè)置。

  想得到設(shè)置緩存的幫助,與許多其他性能相關(guān)的設(shè)置,請(qǐng)查看 mysql-tuning-primer 腳本。

  MySQL 查詢(xún)緩存的主要問(wèn)題是,它是全局的。對(duì)緩存結(jié)果集構(gòu)成的表格的任何更改都將導(dǎo)致緩存失效。在寫(xiě)入操作頻繁的應(yīng)用程序中,這將使緩存幾乎無(wú)效。

  然而,你還有許多其他選擇,可以根據(jù)你的需求和數(shù)據(jù)集建立更多的智能緩存,例如 Memcached , riak , cassandra 或 redis

  查詢(xún)優(yōu)化

  如前所述,數(shù)據(jù)庫(kù)查詢(xún)常常是程序執(zhí)行緩慢的原因,查詢(xún)優(yōu)化往往能比代碼優(yōu)化帶來(lái)更多切身的好處。

  查詢(xún)優(yōu)化有助于生成內(nèi)容緩存時(shí)提高性能,而且,在無(wú)法緩存這種最壞的情況下也有益處。

  除了分析, MySQL 還有一個(gè)幫助識(shí)別慢查詢(xún)的選擇——慢查詢(xún)?nèi)罩尽B樵?xún)?nèi)罩緯?huì)記錄所有耗時(shí)超過(guò)指定時(shí)間的查詢(xún),以及不使用索引的查詢(xún)(后者為可選項(xiàng))。

  您可以在 my.cnf 中使用以下配置啟用日志。

  [mysqld]

  log_slow_queries =/var/log/mysql/mysql-slow.log

  long_query_time =1

  log-queries-not-using-indexes

  任何查詢(xún)?nèi)绻?long_query_time (以秒為單位),該查詢(xún)就會(huì)記錄到日志文件 log_slow_queries 中。默認(rèn)值是10秒,最低1秒。

  此外, log-queries-not-using-indexes 選項(xiàng)可以將任何不使用索引的查詢(xún)捕獲到日志中。

  之后我們可以用與 MySQL 捆綁在一起的 mysqldumpslow 命令檢查日志。

  在 WordPress 安裝時(shí)使用這些選項(xiàng) ,主頁(yè)加載完成并運(yùn)行后得到如下數(shù)據(jù):

  $ mysqldumpslow -g "wp_" /var/log/mysql/mysql-slow.log

  Reading mysql slow query log from /var/log/mysql/mysql-slow.log

  Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=358.0(358), user[user]@[host] SELECT option\_name, option\_value FROM wp_options WHERE autoload ='S'

  Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=41.0(41), user[user]@[host] SELECT user\_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (N)

  首先,注意所有字符串值都以 S 表示,數(shù)字則以 N 表示。你可以添加 -a 標(biāo)志來(lái)顯示這些值。

【分析PHP性能調(diào)優(yōu)實(shí)戰(zhàn)】相關(guān)文章:

php中的socket框架性能分析07-17

java性能調(diào)優(yōu)的方法09-26

關(guān)于java性能調(diào)優(yōu)的方法10-26

php的file-get-contents與curl性能分析09-04

php中file-get-contents與curl性能分析10-04

分析PHP7性能優(yōu)化提升技巧07-12

PHP性能優(yōu)化的技巧07-18

PHP性能優(yōu)化技巧09-22

PHP文件緩存的性能測(cè)試11-10