開啟opcache提高效能

2022-05-22 21:39:08 字數 1585 閱讀 8081

在開啟opcache之前,我們先介紹一下編譯與解釋:

編譯器是把源程式的每一條語句都編譯成機器語言,並儲存成二進位制檔案,這樣執行時計算機可以直接以機器語言來執行此程式,速度很快;而直譯器則是只在執行程式時,才一條一條的解釋成機器語言給計算機來執行,所以執行速度是不如編譯後的程式執行的快的。

解釋型語言的實現中,翻譯器並不產生目標機器**,而是產生易於執行的中間**,這種中間**與機器**是不同的,中間**的解釋是由軟體支援的,不能直接使用硬體,軟體直譯器通常會導致執行效率較低。用解釋型語言編寫的程式是由另乙個可以理解中間**的解釋程式執行的。與編譯程式不同的是,解釋程式的任務是逐一將源程式的語句解釋成可執行的機器指令,不需要將源程式翻譯成目標**後再執行。對於解釋型basic語言,需要乙個專門的直譯器解釋執行。

在很多時候我們成為編譯,但是它實際是進行解釋的。對於乙個編譯型程式,它的編譯和執行是分開的,先編譯成二進位制可執行檔案,然後在次執行。

對於php、python屬於解釋型語言,不產生機器碼,而是產生中間碼(中間碼是不能直接執行,這個中間嗎只有直譯器可以識別到,中間碼要靠解析器來進行執行) 

比如說php的解析器是zend,php使用zend引擎,中間碼我們也稱作為操作碼(opcode)basic程式,每條語言只有在執行才被翻譯。這種解釋型語言每執行一次就翻譯一次,因而效率低下。

鳥哥在部落格中說,提高php 7效能的幾個tips,第一條就是開啟opache,引用下原文:

記得啟用zend opcache, 因為php7即使不啟用opcache速度也比php-5.6啟用了opcache快, 

所以之前測試時期就發生了有人一直沒有啟用opcache的事情

開啟opcache方法 

php 5.5+版本以上的,可以使用php自帶的opcache開啟效能加速(預設是關閉的),php5.5之後opcache可以直接--enable-opcache。對於php 5.5以下版本的,需要使用apc來進行快取,這裡不說明。

php5.5之前需要使用apc來進行快取,

1. 開啟php.ini檔案

2. 找到:[opcache],設定為:

[opcache]

; 開關開啟

opcache.enable=1

; 設定共享記憶體大小, 單位為:mb

opcache.memory_consumption=128

; 如果啟用,那麼 opcache 會每隔 opcache.revalidate_freq 設定的秒數 檢查指令碼是否更新。 如果禁用此選項,你必須使用 opcache_reset() 或者 opcache_invalidate() 函式來手動重置 opcache,也可以 通過重啟 web 伺服器來使檔案系統更改生效。

opcache.validate_timestamps=60

3. 新增opcache.so

在php.ini最後一行新增opcache.so主要作用是用來引用opcache

4. 重啟nginx和php

SQL 提高效能

參考部落格 非常感謝博主分享。1.set nocount on 關閉行基數資訊,減少網路通訊,提高程式效能。2.count 1 count 2 count name count 前三種效果一樣,count 找出最短的列,所以建議用count 1 效率高。3.with nolock 大量的查詢,會導致...

PHP7開啟opcache打造強悍效能

鳥哥在部落格中說,提高php 7效能的幾個tips,第一條就是開啟opcache 記得啟用zend opcache,因為php7即使不啟用opcache速度也比php 5.6啟用了opcache快,所以之前測試時期就發生了有人一直沒有啟用opcache的事情 那麼什麼是opcache呢?opcach...

PHP7開啟opcache打造強悍效能

鳥哥在部落格中說,提高php 7效能的幾個tips,第一條就是開啟opcache 記得啟用zend opcache,因為php7即使不啟用opcache速度也比php 5.6啟用了opcache快,所以之前測試時期就發生了有人一直沒有啟用opcache的事情 那麼什麼是opcache呢?opcach...