国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP|PHP調(diào)優(yōu)入門

netScorpion / 3472人閱讀

摘要:另外,可以在腳本的最后調(diào)用輸出當(dāng)前腳本小號(hào)的最大內(nèi)存量。根據(jù)分配的內(nèi)存總量來估算進(jìn)程數(shù)。該擴(kuò)展用于緩存操作碼。默認(rèn)情況下,駐留的字符串會(huì)隔離在各個(gè)進(jìn)程中。檢查腳本的內(nèi)容是否有變化。在腳本末尾可以叫上獲得真實(shí)的路徑緩存使用大小。

php.ini文件

有這么一個(gè)工具,可以檢查ini文件是否使用了安全方面的最佳實(shí)踐

composer require psecio/iniscan

htps://github.com/psecio/iniscan
內(nèi)存

php.ini中的memory_limit設(shè)定單個(gè)PHP進(jìn)程可以使用的系統(tǒng)內(nèi)存最大值。

一共能分配給PHP多少內(nèi)存?

512MB是絕對(duì)足夠的。但是還是要看具體情況。

單個(gè)PHP進(jìn)程平均消耗多少內(nèi)存?

可以在命令行中執(zhí)行top命令看查看運(yùn)行中的進(jìn)程的實(shí)時(shí)統(tǒng)計(jì)數(shù)據(jù)。

另外,可以在PHP腳本的最后調(diào)用memory_get_peak_usage()輸出當(dāng)前腳本小號(hào)的最大內(nèi)存量。

能負(fù)擔(dān)起多少個(gè)PHP-FPM進(jìn)程?

平均每個(gè)php進(jìn)程要消耗15MB內(nèi)存。根據(jù)分配的內(nèi)存總量memory_limit來估算進(jìn)程數(shù)。

OPcache

該擴(kuò)展用于緩存操作碼。

先來分析每次HTTP請(qǐng)求時(shí)通常是如何處理PHP腳本的。

首先,nginx把HTTP請(qǐng)求轉(zhuǎn)發(fā)給PHP-FPM,PHP-FPM再把請(qǐng)求交給某個(gè)PHP子進(jìn)程處理。PHP進(jìn)程找到相應(yīng)的php腳本,讀取腳本,把php腳本編譯成操作碼,然后執(zhí)行編譯得到的操作碼,生成響應(yīng),發(fā)給nginx。

我們可以緩存編譯php腳本得到的操作碼,直接從緩存中讀取并執(zhí)行編譯好的操作碼。

我的php.ini中opcache的配置

opcache.memory_consumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.fast_shutdown = 1
opcache.memory_consumption = 64

為緩存分配的內(nèi)存量。根據(jù)應(yīng)用大小來決定。

opcache.interned_strings_buffer = 16

用來存儲(chǔ)駐留字符串的內(nèi)存量。

什么是駐留字符串?PHP解釋器在背后會(huì)找到相同字符串的多個(gè)實(shí)例,把這個(gè)字符串保存在內(nèi)存中,如果再次使用相同的字符串,php解釋器會(huì)使用指針。默認(rèn)情況下,php駐留的字符串會(huì)隔離在各個(gè)php進(jìn)程中。

這個(gè)設(shè)置能讓php-fpm進(jìn)程池中所有進(jìn)程把駐留字符串存儲(chǔ)到共享的緩沖區(qū)中,以便在php-fpm進(jìn)程池中的多個(gè)進(jìn)程之間引用駐留字符串。

opcache.max_accelerated_files = 4000

操作碼緩存中最多能存儲(chǔ)的php腳本個(gè)數(shù),一定要比應(yīng)用中文件數(shù)量大。

opcache.validate_timestamps = 1

檢查php腳本的內(nèi)容是否有變化。值為0則不檢查。

文件上傳
file_uploads = 1
upload_max_filesize = 10M
max_file_uploads = 3

在配置上傳非常大的文件時(shí),對(duì)nginx的client_max_body_size也要修改

最長(zhǎng)執(zhí)行時(shí)間
max_execution_time = 5 // s

也可以使用set_time_limit()來覆蓋

處理會(huì)話

php的會(huì)話處理程序會(huì)把會(huì)話數(shù)據(jù)存儲(chǔ)在硬盤中。其實(shí)可以使用memcached或redis存儲(chǔ)在內(nèi)存中。

安裝連接memcached的PECL擴(kuò)展來使用memcahced

http://pecl.php.net/package/memcached

修改配置

session.save_handler = "memcached"
session.save_path = "127.0.0.2:11211"
緩沖輸出

緩沖輸出的目的:在較少的塊中發(fā)送較多的數(shù)據(jù)

output_buffering = 4096
implicit_flush = false

確保輸出大小是4或8的倍數(shù)

真實(shí)路徑緩存

PHP會(huì)緩存應(yīng)用使用的文件路徑,這樣每次包含或倒入文件時(shí)就不需要不斷搜索路徑了。

這個(gè)緩存叫真實(shí)路徑緩存

realpath_cache_size = 64k

在腳本末尾可以叫上print_r(realpath_cache_size())獲得真實(shí)的路徑緩存使用大小。

參考

Modern PHP

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/21667.html

相關(guān)文章

  • 記一次 Laravel 應(yīng)用性能調(diào)優(yōu)經(jīng)歷

    摘要:為了一探究竟,于是開啟了這次應(yīng)用性能調(diào)優(yōu)之旅。使用即時(shí)編譯器和都能輕輕松松的讓你的應(yīng)用程序在不用做任何修改的情況下,直接提高或者更高的性能。 這是一份事后的總結(jié)。在經(jīng)歷了調(diào)優(yōu)過程踩的很多坑之后,我們最終完善并實(shí)施了初步的性能測(cè)試方案,通過真實(shí)的測(cè)試數(shù)據(jù)歸納出了 Laravel 開發(fā)過程中的一些實(shí)踐技巧。 0x00 源起 最近有同事反饋 Laravel 寫的應(yīng)用程序響應(yīng)有點(diǎn)慢、20幾個(gè)并...

    warkiz 評(píng)論0 收藏0
  • PHP技術(shù)棧

    摘要:熟悉編程,對(duì)于網(wǎng)絡(luò)模型有一定的認(rèn)知,熟悉多路復(fù)用技術(shù)。對(duì)主從延遲能有效解決。能夠支持對(duì)于千萬級(jí)流量網(wǎng)站的正常開發(fā)維護(hù)工作。結(jié)束語技術(shù)無止境,未來有更多可能。 本文旨在給要學(xué)習(xí) PHP 的新手一個(gè)大概的認(rèn)知輪廓,在心里有個(gè)學(xué)習(xí)的結(jié)構(gòu),有的放矢,避免走太多彎路。大神請(qǐng)忽略。 入門階段 預(yù)備知識(shí) 1、掌握基本HTML、JS、CSS語法;熟悉 Bootstrap。 參考: https:/...

    LinkedME2016 評(píng)論0 收藏0
  • PHP技術(shù)棧

    摘要:熟悉編程,對(duì)于網(wǎng)絡(luò)模型有一定的認(rèn)知,熟悉多路復(fù)用技術(shù)。對(duì)主從延遲能有效解決。能夠支持對(duì)于千萬級(jí)流量網(wǎng)站的正常開發(fā)維護(hù)工作。結(jié)束語技術(shù)無止境,未來有更多可能。 本文旨在給要學(xué)習(xí) PHP 的新手一個(gè)大概的認(rèn)知輪廓,在心里有個(gè)學(xué)習(xí)的結(jié)構(gòu),有的放矢,避免走太多彎路。大神請(qǐng)忽略。 入門階段 預(yù)備知識(shí) 1、掌握基本HTML、JS、CSS語法;熟悉 Bootstrap。 參考: https:/...

    luckyw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<