MartinStreicher(mstreicher@linux-mag.com),主編,LinuxMagazine2007年3月20" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[轉(zhuǎn)]為 PHP 應(yīng)用提速、提速、再提速!,第 1 部

系統(tǒng) 2710 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>


Martin Streicher ( mstreicher@linux-mag.com ), 主編, Linux Magazine

2007 年 3 月 20 日

PHP 是一種腳本語(yǔ)言,常用于創(chuàng)建 Web 應(yīng)用程序。它易于掌握,并能迅速生成可視化結(jié)果。然而,由于 PHP 是以解釋的方式執(zhí)行的,所以 PHP 代碼每次執(zhí)行時(shí)都會(huì)被解析和轉(zhuǎn)換成操作碼(opcode)。操作碼緩存能消除這項(xiàng)重復(fù)的工作,使 PHP 應(yīng)用程序運(yùn)行得更快。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

在很短的時(shí)間內(nèi),PHP 成為了一種非常流行的開(kāi)發(fā) Web 應(yīng)用程序的程序設(shè)計(jì)語(yǔ)言。對(duì)初學(xué)者來(lái)說(shuō),PHP 易于安裝和學(xué)習(xí)。對(duì)于有經(jīng)驗(yàn)的開(kāi)發(fā)人員而言,PHP(從 V5 開(kāi)始)提供了強(qiáng)大的面向?qū)ο筇匦浴HP 開(kāi)發(fā)人員擁有龐大的群體,大量的開(kāi)源及商業(yè)庫(kù)和工具擴(kuò)展了該核心語(yǔ)言的功能。PHP 能迅速產(chǎn)生可視化結(jié)果,因此備受眾人推崇。

與其他開(kāi)發(fā) Web 應(yīng)用程序的腳本語(yǔ)言(包括 Perl、Python 和 Ruby)相似, 每次 HTTP 請(qǐng)求調(diào)用時(shí),PHP 代碼都會(huì)被解析和翻譯為 操作碼 (PHP 引擎直接執(zhí)行的原語(yǔ)指令 —— 類(lèi)似于匯編語(yǔ)言)再執(zhí)行。在要求很低或可忽略的情況下,服務(wù)器看上去能立即執(zhí)行這個(gè)復(fù)雜的解釋過(guò)程。但是一旦處理的頁(yè)面增加,解釋 —— 從本質(zhì)上說(shuō),重復(fù)工作 —— 就會(huì)對(duì)服務(wù)器造成很大的負(fù)擔(dān)。在某些情況下,“編譯” PHP 代碼的時(shí)間會(huì)遠(yuǎn)遠(yuǎn)超過(guò)執(zhí)行該代碼所需的時(shí)間。因此,當(dāng)需求增加時(shí),您常常會(huì)自食其果,因?yàn)樘幚磉@些不斷解釋和動(dòng)態(tài)生成的頁(yè)面需要消耗更多的系統(tǒng)資源。

若您對(duì)處理器和 RAM 的預(yù)算沒(méi)有限制,那么就大可不必通過(guò)優(yōu)化應(yīng)用棧(硬件、操作系統(tǒng)、數(shù)據(jù)庫(kù)、Web 服務(wù)器和 PHP 代碼)來(lái)保證站點(diǎn)的可響應(yīng)性。然而,由于資金通常都是最缺乏的資源,所以改善性能是必不可少的。調(diào)優(yōu)意味著對(duì)系統(tǒng)增加內(nèi)存、修改操作系統(tǒng)參數(shù)、加速 Web 或數(shù)據(jù)庫(kù)服務(wù)器、提高代碼效率或者這其中的一些組合。每一項(xiàng)都有其各自的作用。

不要浪費(fèi)周期 —— 重復(fù)使用

節(jié)約 CPU 周期的另一種方法是減少運(yùn)行 PHP 應(yīng)用程序所需的重復(fù)工作。當(dāng)然,沒(méi)有必要每次都把同樣的 PHP 代碼翻譯一遍。PHP 代碼被翻譯成操作碼后,可以把它保存起來(lái)并重復(fù)使用 —— 直到原始代碼被修改。確實(shí), 緩存 —— 用于保存和重用 PHP 操作碼 —— 是幾種 PHP 加速器內(nèi)部的機(jī)制,包括開(kāi)源 Alternative PHP Cache (APC)、支持 PHP 的 Turck MMCache、XCache、eAccelerator 和商業(yè) Zend Platform。后三類(lèi)加速器能夠緩存和優(yōu)化字節(jié)碼,這為系統(tǒng)提供了更多的速度提升。

這個(gè)月,我將探究如何安裝、部署和配置 XCache。XCache 相對(duì)較新,但是很多站點(diǎn)使用它的效果都很好。此外,XCache 易于構(gòu)建、安裝和配置,因?yàn)樗亲鰹?PHP 擴(kuò)展實(shí)現(xiàn)的。不需對(duì) Apache 和 PHP 進(jìn)行重編譯。

本文基于 XCache V1.2.0。它可為 PHP V4.3.11 至 V4.4.4、PHP V5.1.x 至 V5.2.x 以及 PHP V6 的早期版本提供可靠支持(XCache 并不支持 PHP V5.0.x)。XCache 兼容 mod_php 和 FastCGI 但并不支持 Common Gateway Interface (CGI) 和命令行 PHP 解釋器。XCache 源代碼能構(gòu)建在許多系統(tǒng)上,包括 FreeBSD、Sun Solaris、Linux? 和這里所示的 Mac OS X。使用 Cygwin UNIX? 仿真環(huán)境或 Visual C,能在 Microsoft? Windows? 上構(gòu)建 XCache。還可以為 Cygwin 或原生 Win32 構(gòu)建 XCache。后者與 PHP 的官方 Win32 版本兼容。

本文的演示基于 Apache V2.2.3、PHP V5.2.0、XCache V1.2.0(2006 年 10 月發(fā)布)和 Mac OS X V10.4.8 Tiger 上的 Xcode V2.4.1。硬件平臺(tái)為配有 2-GHz Intel? Core Duo 處理器和 2 GB RAM 的 Apple MacBook。





回頁(yè)首


構(gòu)建 XCache 的基本步驟

在開(kāi)始之前,首先確保 PHP 正常安裝并核實(shí) phpize 是否位于 shell 的 PATH 下。同時(shí),還需要一個(gè) C 編譯器,例如 GNU Compiler Collection (GCC),和一組包含 make m4 的開(kāi)發(fā)工具。在 Mac OS X 上,免費(fèi)的 Xcode 軟件開(kāi)發(fā)環(huán)境提供了必需的構(gòu)建工具。

完成以下操作步驟,在 Mac OS X 上構(gòu)建、部署 XCache 并對(duì)其進(jìn)行性能檢測(cè)。在其他平臺(tái)上構(gòu)建 XCache 與之類(lèi)似。如果使用 Linux,則其發(fā)行版可能已經(jīng)包含了 XCache 或者已經(jīng)將其以預(yù)先打包好的格式提供給您。

增加 Mac OS X 的共享內(nèi)存

首先增加 Mac OS X 上留出的共享內(nèi)存總量。要實(shí)現(xiàn)這一目的,需創(chuàng)建(或編輯)文件 /etc/sysctl.conf 并創(chuàng)建如下條目:


清單 1. 增加 Mac OS X 上留出的共享內(nèi)存總量
              				kern.sysv.shmmax=33554432kern.sysv.shmmin=1kern.sysv.shmmni=32kern.sysv.shmseg=8kern.sysv.shmall=8192
            

這些設(shè)置把共享內(nèi)存總量增加到了 32 MB。如還需進(jìn)一步擴(kuò)展共享內(nèi)存,可以把 kern.sysv.shmall 設(shè)定為 kern.sysv.shmmax 除以硬件頁(yè)面大小。使用 sysctl hw.pagesize 能獲得硬件頁(yè)面大小。例如,假設(shè)需要 128 MB 的共享內(nèi)存,那么設(shè)定 kern.sysv.shmmax=134217728 并設(shè)定 kern.sysv.shmall=32768

重啟 Mac OS X 使修改生效。重啟后,檢驗(yàn)新設(shè)置是否生效,鍵入:

              sysctl -a | grep kern.sysv
            

通過(guò)源代碼構(gòu)建 XCache

接下來(lái),通過(guò)源代碼構(gòu)建 XCache。從 http://xcache.lighttpd.net 處下載源代碼。下載完后解壓代碼,并轉(zhuǎn)換到 .tar 文件創(chuàng)建的新目錄。


清單 2. 通過(guò)源代碼構(gòu)建 XCache
              				$ cd /tmp$ wget http://210.51.190.228/pub/XCache/Releases/xcache-1.2.0.tar.gz$ tar xzf xcache-1.2.0.tar.gz$ cd xcache
            

運(yùn)行 phpize 為編譯 XCache 做準(zhǔn)備。


清單 3. 運(yùn)行 phpize
              				$ phpizeConfiguring for:PHP Api Version:         20020918Zend Module Api No:      20020429Zend Extension Api No:   20050606
            

運(yùn)行 configure ,創(chuàng)建適合于原生操作系統(tǒng)的 makefile。


清單 4. 運(yùn)行 configure 創(chuàng)建 makefile
              				$ ./configure --enable-xcache --enable-xcache-coverager checking build system type... i686-apple-darwin8.8.1checking host system type... i686-apple-darwin8.8.1...creating libtoolconfigure: creating ./config.statusconfig.status: creating config.h
            

此處, --enable-xcache 選項(xiàng)包含 XCache 支持, --enable-xcache-coverager 選項(xiàng)包含用于測(cè)量加速器功效的附加特性。要啟用操作碼優(yōu)化,添加 --enable-xcache-optimizer

當(dāng)然,下一步將使用 make 命令行構(gòu)建和安裝代碼。運(yùn)行 make ,然后作為 root 用戶(hù)運(yùn)行 make install


清單 5. 利用 make 構(gòu)建和安裝代碼
              				$ make...cp ./xcache.so /Users/strike/tmp/xcache/modules/xcache.soBuild complete.$ sudo make installInstalling shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20020429/
            

如果上述兩項(xiàng)操作順利完成,那么 XCache 將位于 /usr/lib/php/extensions/no-debug-non-zts-20020429/xcache.so。(路徑 /usr/lib/php/extensions/no-debug-non-zts-20020429 反映了正在使用的 API 版本和用于構(gòu)建 PHP 的編譯選項(xiàng)。如果啟用了試用的 Zend Thread Safety 特性,則 "no-debug" 應(yīng)為 "debug","non-zts" 應(yīng)為 "zts"。)

修改 php.ini 文件

因?yàn)榘惭b了擴(kuò)展,所以必需修改 php.ini 文件,使之包含 XCache 擴(kuò)展并對(duì)其進(jìn)行配置。打開(kāi)文件 /private/etc/php.ini,在其中添加如下代碼行:


清單 6. 為 XCache 擴(kuò)展修改 php.ini 文件
              				[xcache-common]zend_extension      = /usr/lib/php/extensions/no-debug-non-zts-20020429/xcache.so[xcache.admin]; Change xcache.admin.user to your preferred login name xcache.admin.user   = "admin"; Change xcache.admin.pass to the MD5 fingerprint of your password; Use md5 -s "your_secret_password" to find the fingerprintxcache.admin.pass   = "0ad72f3f352fcd8acdf266bafd0ac48d"[xcache]; Change xcache.size to tune the size of the opcode cachexcache.size         = 24Mxcache.shm_scheme   = "mmap"xcache.count        = 2xcache.slots        = 8Kxcache.ttl          = 0xcache.gc_interval  = 0; Change xcache.var_size to adjust the size of variable cachexcache.var_size     = 8Mxcache.var_count    = 1xcache.var_slots    = 8Kxcache.var_ttl      = 0xcache.var_maxttl   = 0xcache.var_gc_interval =     300xcache.test         = Offxcache.readonly_protection = Onxcache.mmap_path    = "/tmp/xcache"xcache.coredump_directory =   ""xcache.cacher       = Onxcache.stat         = Onxcache.optimizer    = Off[xcache.coverager]xcache.coverager    = Onxcache.coveragedump_directory = ""
            

注意: 為了簡(jiǎn)明起見(jiàn),此處省略了一些注釋。要了解每個(gè)參數(shù)的含義,請(qǐng)參閱 XCache 源代碼中 xcache.ini 文件設(shè)置的例子。

操作碼和變量緩存的大小是 32 MB,這是 /etc/rc 留出的最大值。對(duì)于 Mac OS X, xcache.mmap_path 必須為文件名。因?yàn)?PHP 代碼將在 MacBook 上運(yùn)行,所以 xcache.count 應(yīng)設(shè)為 2,表示 MacBook 中 CPU 的數(shù)量。要訪問(wèn) XCache 統(tǒng)計(jì)信息頁(yè)面,需改變 xcache.admin.pass 設(shè)置。運(yùn)行:

              $ md5 -s "
              
                password
              
              "
            

此處 password 為您的密碼。把輸出復(fù)制給 xcache.admin.pass 。例如,若需將密碼設(shè)定為 op3nsesam3 ,可以運(yùn)行:

              $ md5 -s "op3nsesam3"MD5 ("op3nsesam3") = cd959ac3debe8f587546a3fa353b3268
            

然后把 cd959ac3debe8f587546a3fa353b3268 復(fù)制給 xcache.admin.pass

重啟 Web 服務(wù)器

設(shè)置好 XCache 后,重啟 Apache Web 服務(wù)器。對(duì)于大多數(shù)系統(tǒng),可以以 root 用戶(hù)的身份使用 apachectl restart 進(jìn)行重啟。

              $ sudo apachectl restart/usr/sbin/apachectl restart: httpd restarted
            

創(chuàng)建程序以調(diào)用 phpinfo()

檢驗(yàn) XCache 是否已啟用,需創(chuàng)建一個(gè)小型 PHP 程序用于調(diào)用 phpinfo() 并在 Web 瀏覽器中打開(kāi)那個(gè)文件。這樣就能看到類(lèi)似下圖的 XCache 版面。


圖 1. phpinfo() 方法給出了 XCache 設(shè)置
phpinfo() 方法給出了 XCache 設(shè)置

監(jiān)控 XCache

要監(jiān)控 XCache,需安裝 XCache 源代碼的 admin 目錄中的管理頁(yè)面。把整個(gè) admin 目錄復(fù)制到 Apache 文檔根目錄下。通常來(lái)說(shuō),Mac OS X 中的文檔根目錄為 /Library/WebServer/Documents。

              $ cp -pr admin /Library/WebServer/Documents
            

復(fù)制完成后,使用 sudo apachectl restart 重啟 Web 服務(wù)器。用瀏覽器打開(kāi) http://localhost/admin,檢驗(yàn)管理面板是否工作正常。請(qǐng)參閱類(lèi)似圖 2 的面板。


圖 2. XCache Administration 面板
XCache Administration 面板

測(cè)試應(yīng)用程序

選擇一個(gè)或兩個(gè)應(yīng)用程序進(jìn)行測(cè)試。您可以使用自己的代碼或者,如果想要更復(fù)雜一點(diǎn),使用大型的 PHP 應(yīng)用程序,例如 phpMyAdmin 或者 Serendipity





回頁(yè)首


運(yùn)行性能檢測(cè)

Apache HTTP Web 服務(wù)器提供了一個(gè)叫做 ab 的工具,即 Apache HTTP 服務(wù)器性能檢測(cè)(benchmark)工具的縮寫(xiě)。 ab 用于為 PHP 頁(yè)面自動(dòng)化處理大量的請(qǐng)求。phpMyAdmin 應(yīng)用程序?qū)?huì)是一個(gè)很好的選擇,因?yàn)樗芸赡芤呀?jīng)安裝到您的系統(tǒng)上了。

ab 工具易于使用:只需提供給它一個(gè)重復(fù)數(shù)和一個(gè) URL。 ab 工具對(duì)這個(gè) URL 提交若干次請(qǐng)求并返回統(tǒng)計(jì)信息。由于 XCache 已啟用,所以第一個(gè)性能檢測(cè)顯示了加速后的性能。

在運(yùn)行 ab 之前,用瀏覽器導(dǎo)航到 http://localhost/phpmyadmin/。訪問(wèn)這個(gè) PHP 頁(yè)面一次,便會(huì)加載用來(lái)將此頁(yè)呈現(xiàn)到緩存內(nèi)的所有 PHP 代碼。此時(shí),運(yùn)行如下的性能檢測(cè),重復(fù) 100000 次。


清單 7. phpMyAdmin 的性能檢測(cè)
              				$ ab -n 100000 http://localhost/phpmyadmin...Concurrency Level:      1Time taken for tests:   14.597 secondsComplete requests:      100000Failed requests:        98262   (Connect: 49131, Length: 49131, Exceptions: 0)Broken pipe errors:     0Non-2xx responses:      50869Total transferred:      25739714 bytesHTML transferred:       12005084 bytesRequests per second:    6850.72 [#/sec] (mean)Time per request:       0.15 [ms] (mean)Time per request:       0.15 [ms] (mean, across all concurrent requests)Transfer rate:          1763.36 [Kbytes/sec] received
            

有用的統(tǒng)計(jì)信息包括每秒的請(qǐng)求數(shù)和完成所有測(cè)試的總時(shí)間。對(duì)于前者,值越大越好;對(duì)于后者,值越小越好。

現(xiàn)在,在 php.ini 文件中禁用 XCache,然后再一次運(yùn)行性能檢測(cè),如清單 8 所示。可以注釋掉對(duì) XCache 擴(kuò)展的引用,或者關(guān)閉所有的 XCache 特性。再次運(yùn)行性能檢測(cè)之前,需重啟 Apache。


清單 8. 禁用 XCache 時(shí)的 phpMyAdmin 性能檢測(cè)
              				$ sudo apachectl restart$ ab -n 100000 http://localhost/phpmyadminConcurrency Level:      1Time taken for tests:   17.771 secondsComplete requests:      100000Failed requests:        98256   (Connect: 49128, Length: 49128, Exceptions: 0)Broken pipe errors:     0Non-2xx responses:      50872Total transferred:      25741232 bytesHTML transferred:       12005792 bytesRequests per second:    5627.15 [#/sec] (mean)Time per request:       0.18 [ms] (mean)Time per request:       0.18 [ms] (mean, across all concurrent requests)Transfer rate:          1448.50 [Kbytes/sec] received
            

此處,XCache 禁用之后,每秒的請(qǐng)求數(shù)有所下降,表示 Apache 服務(wù)器處理每個(gè)請(qǐng)求需更長(zhǎng)的時(shí)間。運(yùn)行整套測(cè)試所需的時(shí)間也因此增加了。

盡管這只是一個(gè)簡(jiǎn)單的性能檢測(cè) —— phpMyAdmin 連接數(shù)據(jù)庫(kù)的功能被禁用了,這樣能限制單獨(dú)解釋 PHP 的處理時(shí)間 —— 并且不是非常科學(xué),但它確實(shí)向我們演示了使用 XCache 能夠完成哪些任務(wù)。對(duì)于微小的投入(欣慰地是,PHP 或 Apache 不需重編譯),XCache 能產(chǎn)生一個(gè)相對(duì)較大的回報(bào)。代碼越復(fù)雜,可能的受益也越大。

若想了解 XCache 是如何有效地運(yùn)行的,請(qǐng)?jiān)L問(wèn) http://localhost/xadmin 并單擊 List PHP 。您能看到緩存中的 PHP 文件列表,連同 cache hit、操作碼的代碼大小、源文件的字節(jié)大小,等等。圖 3 顯示了 XCache 專(zhuān)門(mén)為 XAMPP 棧包構(gòu)建時(shí)的結(jié)果。


圖 3. XCache 管理頁(yè)面反映了緩存的狀態(tài)和內(nèi)容
XCache 管理頁(yè)面反映了緩存的狀態(tài)和內(nèi)容

前面已經(jīng)提及,XCache 是許多加速器中的一種。在強(qiáng)大的 Zend 軟件中還有許多免費(fèi)的開(kāi)源替代方案和一個(gè)商業(yè)化產(chǎn)品可選。每種 PHP 加速器都有自己的系統(tǒng)需求,所以應(yīng)主要根據(jù)現(xiàn)有的或預(yù)期的配置以及應(yīng)用程序的特性選擇合適的加速器。從中推薦一種很難,但是安裝編譯器緩存是我建議您務(wù)必要做的。





回頁(yè)首


大量的調(diào)優(yōu)選擇

除了緩存之外,還有許多其他途徑可以加速應(yīng)用程序。可以通過(guò)刪除 PHP 引擎的一些很深?yuàn)W的特性來(lái)簡(jiǎn)化它。例如,若不需使用 TCP/IP V6 (IPv6) 網(wǎng)絡(luò),便可在構(gòu)建 PHP 時(shí)禁用該屬性。通過(guò)在 PHP 源代碼樹(shù)的頂部輸入 ./configure --help 可以參閱 PHP 配置選項(xiàng)的完整列表。無(wú)論選擇哪一個(gè)配置選項(xiàng),都應(yīng)該將:

              --enable-inline-optimization --disable-debug
            

添加到最終的配置命令。前一選項(xiàng)使 PHP 有可能更快地執(zhí)行(不需使用類(lèi)似 Zend Engine 的軟件進(jìn)行額外的操作碼優(yōu)化);后一選項(xiàng)取消了 PHP 的調(diào)試模式,只有當(dāng)需要解決 PHP 應(yīng)用服務(wù)器本身的問(wèn)題時(shí)才需開(kāi)啟該模式。

當(dāng)然,正如一些 C 應(yīng)用程序,我們能利用 C 編譯器構(gòu)建更佳的可執(zhí)行程序。如果把 PHP 作為 Linux 或 FreeBSD 上的 Apache Dynamic Shared Object (DSO) 在 x86 處理器上運(yùn)行,需考慮在 CFLAGS (存儲(chǔ) C 編譯器選項(xiàng)的環(huán)境變量)中添加 -prefer-non-pic 選項(xiàng)。non-pic 會(huì)使用位置獨(dú)立的代碼構(gòu)建 PHP 并能提供 10% 的性能提升。還可以使用 CFLAGS 中的 -march 確定處理器的類(lèi)型,例如 -march=opteron 表示處理器類(lèi)型為 AMD Opteron。

提升速度的另一個(gè)途徑是 操作碼優(yōu)化 。此處,Zend Engine 之類(lèi)的軟件會(huì)優(yōu)化編譯過(guò)程中產(chǎn)生的操作碼,這理論上會(huì)減少代碼執(zhí)行的工作總量。

緩存和優(yōu)化都是透明的,并不需額外的編程。要應(yīng)用一些優(yōu)化操作,執(zhí)行 結(jié)構(gòu)分析 ,或檢查代碼在哪花費(fèi)了時(shí)間。重復(fù)的工作既不經(jīng)濟(jì)又運(yùn)算緩慢,這顯然會(huì)產(chǎn)生瓶頸。通過(guò)代碼優(yōu)化彌補(bǔ)周期的不足是很有價(jià)值的 —— 但是在結(jié)構(gòu)分析之前不要嘗試進(jìn)行任何優(yōu)化。





回頁(yè)首


展望未來(lái)

在接下來(lái)的幾個(gè)月我將再次討論優(yōu)化,會(huì)談及調(diào)試、快速正文搜索、交替 Web 服務(wù)器等內(nèi)容。同時(shí),還將研究一個(gè)或多個(gè) PHP 加速器和操作碼優(yōu)化器。實(shí)現(xiàn) 10% 到 200% 的性能提升只需幾個(gè)小時(shí)的優(yōu)化和修補(bǔ)。想像一下您的機(jī)器利用這些空閑的周期能做多少事情吧!



參考資料

學(xué)習(xí)

獲得產(chǎn)品和技術(shù)

討論


關(guān)于作者

Martin Streicher 是 Linux Magazine 的主編。他從普度大學(xué)獲得了計(jì)算機(jī)科學(xué)碩士學(xué)位,從 1982 年開(kāi)始用 Pascal、C、Perl、Java 和(最近)Ruby 編程語(yǔ)言編寫(xiě)類(lèi) UNIX 的系統(tǒng)。

來(lái)自: http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/index.html




[轉(zhuǎn)]為 PHP 應(yīng)用提速、提速、再提速!,第 1 部分: 使用操作碼緩存軟件提升性能和吞吐量


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 色妇色综合久久夜夜 | 久草热播 | 久久不卡免费视频 | 日本在线中文 | 久久综合伊人77777 | 久久久久久久久久福利 | 精品999久久久久久中文字幕 | 一极毛片 | 亚洲热在线 | 久草在线这里只有精品 | 中国美女一级a毛片录像在线 | 亚洲国产精品一区二区久久 | 国产综合一区二区 | 久久精品国产74国产 | 最新中文字幕在线播放 | 国产在线一区二区三区欧美 | 欧美日韩91| 亚洲综合久 | 91视频香蕉 | 天天爽天天爽 | 欧美乱大交xxxxxbbb | 日日日操操操 | 久久亚洲国产欧洲精品一 | 四虎新地址 | 天天做天天爱天天爽综合网 | 男女69式互添在线观看 | 四虎黄色网址 | 91精品免费高清在线 | 日韩不卡在线观看 | 久久久久久久影院 | 激情五月色婷婷丁香伊人 | 乱色欧美videos黑人 | 欧美日韩亚洲一区二区 | 欧洲在线免费视频 | 看免费5xxaaa毛片30厘米 | 996热这里有精品青青草原 | 欧美成人另类bbw | 亚洲成年网站 | 国内精品视频免费观看 | 老司机性视频 | 成人性生免费视频 |