『壹』 php性能優化的幾個方法
面對一個性能問題是,第一步永遠是找到問題產生的原因,而不是去看技巧列表。搞明白產生瓶頸的原因,找到目標並且實施修復,然後再重新測試。查找瓶頸只是萬里長征的第一步,這里有些常用技巧,希望對最重要的第一步找到瓶頸能有所幫助。
使用監控方法(比如監控寶),進行benchmark和監控,網路,特別是網路狀況瞬息萬變,做得好的話5分鍾就可以找到瓶頸。
剖析代碼。必須了解那部分代碼耗時最多,在這些地方多多關注。
想找到瓶頸,請檢查每個資源請求(比如,網路、CPU、內存、共享內存、文件系統、進程管理、網路連接等等……)
先對迭代結構和復雜的代碼進行benchmark
在在真實負載下用真實數據進行真實測試,當然,如果可以最好用產品伺服器。
緩存
(Caching)
有些人認為緩存是解決性能問題最有效的辦法之一,試試這些:
使用OPCODE(操作碼)緩存,這樣腳本就不會在每次訪問時重新編譯一次。比如:啟用Windows平台上的windows緩存擴展。可以緩存opcode,文件,相對路徑,session數據和用戶數據。
考慮在多伺服器環境下使用分布式緩存
在調用imap_header()之前先調用imap_headers()
編譯
vs. 解釋(Compiling vs. Interpreting)
將PHP源碼編譯成機器碼。動態解釋執行同樣的編譯,但它是按行執行的。編譯為opcode是折中選擇,它可以將PHP源碼翻譯為opcode,之後opcode再轉為機器碼。以下為關於編譯與解釋的相關技巧:
上線之前將PHP代碼編譯為機器碼。opcode緩存盡管並不是最好的選擇,但依舊比解釋型來得強。或者,考慮將PHP代碼編譯成一個C擴展。
PHP的opcode編譯器(bcompiler)還不能在產品環境中使用
可以了解下opcodes緩存,比如APC擴展 http://pecl.php.net/package/APC
『叄』 httpd.exe--應用程序錯誤"0x01682ba"指令引用的"0x00000000"內存。該內存不能為"read"。
成功完美解決方案:在php裡面關閉不必要的dll文件鏈接。
(因為我是新手,所以暫時全部關閉。至於要開啟那些dll文件,個人需要)
PHP配置文件詳解php.ini已經翻譯為中文http://www.cnblogs.com/hbl/archive/2008/02/15/1069367.html)
;[PHP_BZ2]
;extension=php_bz2.dll
;[PHP_CURL]
;extension=php_curl.dll
;[PHP_DBA]
;extension=php_dba.dll
;[PHP_DBASE]
;extension=php_dbase.dll
;[PHP_EXIF]
;extension=php_exif.dll
;[PHP_FDF]
;extension=php_fdf.dll
;[PHP_GD2]
;extension=php_gd2.dll
;[PHP_GETTEXT]
;extension=php_gettext.dll
;[PHP_GMP]
;extension=php_gmp.dll
;[PHP_IMAP]
;extension=php_imap.dll
;[PHP_INTERBASE]
;extension=php_interbase.dll
;[PHP_LDAP]
;extension=php_ldap.dll
;[PHP_MBSTRING]
;extension=php_mbstring.dll
;[PHP_MCRYPT]
;extension=php_mcrypt.dll
;[PHP_MHASH]
;extension=php_mhash.dll
;[PHP_MIME_MAGIC]
;extension=php_mime_magic.dll
;[PHP_MING]
;extension=php_ming.dll
;[PHP_MSQL]
;extension=php_msql.dll
;[PHP_MSSQL]
;extension=php_mssql.dll
;[PHP_MYSQL]
;extension=php_mysql.dll
;[PHP_MYSQLI]
;extension=php_mysqli.dll
;[PHP_OCI8]
;extension=php_oci8.dll
;[PHP_OPENSSL]
;extension=php_openssl.dll
;[PHP_PDO]
;extension=php_pdo.dll
;[PHP_PDO_FIREBIRD]
;extension=php_pdo_firebird.dll
;[PHP_PDO_MSSQL]
;extension=php_pdo_mssql.dll
;[PHP_PDO_MYSQL]
;extension=php_pdo_mysql.dll
;[PHP_PDO_OCI]
;extension=php_pdo_oci.dll
;[PHP_PDO_OCI8]
;extension=php_pdo_oci8.dll
;[PHP_PDO_ODBC]
;extension=php_pdo_odbc.dll
;[PHP_PDO_PGSQL]
;extension=php_pdo_pgsql.dll
;[PHP_PDO_SQLITE]
;extension=php_pdo_sqlite.dll
;[PHP_PDO_SQLITE_EXTERNAL]
;extension=php_pdo_sqlite_external.dll
;[PHP_PGSQL]
;extension=php_pgsql.dll
;[PHP_PSPELL]
;extension=php_pspell.dll
;[PHP_SHMOP]
;extension=php_shmop.dll
;[PHP_SNMP]
;extension=php_snmp.dll
;[PHP_SOAP]
;extension=php_soap.dll
;[PHP_SOCKETS]
;extension=php_sockets.dll
;[PHP_SQLITE]
;extension=php_sqlite.dll
;[PHP_SYBASE_CT]
;extension=php_sybase_ct.dll
;[PHP_TIDY]
;extension=php_tidy.dll
;[PHP_XMLRPC]
;extension=php_xmlrpc.dll
;[PHP_XSL]
;extension=php_xsl.dll
;[PHP_ZIP]
;extension=php_zip.dll
;[PHP_ADT]
;extension=php_adt.dll
;[PHP_APC]
;extension=php_apc.dll
;[PHP_APD]
;extension=php_apd.dll
;[PHP_BCOMPILER]
;extension=php_bcompiler.dll
;[PHP_BITSET]
;extension=php_bitset.dll
;[PHP_BLENC]
;extension=php_blenc.dll
;[PHP_BZ2_FILTER]
;extension=php_bz2_filter.dll
;[PHP_CLASSKIT]
;extension=php_classkit.dll
;[PHP_Cpdf]
;extension=php_cpdf.dll
;[PHP_CRACK]
;extension=php_crack.dll
;[PHP_CVSCLIENT]
;extension=php_cvsclient.dll
;[PHP_DB]
;extension=php_db.dll
;[PHP_DBX]
;extension=php_dbx.dll
;[PHP_DIO]
;extension=php_dio.dll
;[PHP_DOCBLOCK]
;extension=php_docblock.dll
;[PHP_DOMXML]
;extension=php_domxml.dll
;[PHP_EVENT]
;extension=php_event.dll
;[PHP_FILEINFO]
;extension=php_fileinfo.dll
;[PHP_FILEPRO]
;extension=php_filepro.dll
;[PHP_FRIBIDI]
;extension=php_fribidi.dll
;[PHP_GOPHER]
;extension=php_gopher.dll
;[PHP_HARU]
;extension=php_haru.dll
;[PHP_HTSCANNER]
;extension=php_htscanner.dll
;[PHP_HTTP]
;extension=php_http.dll
;[PHP_HYPERWAVE]
;extension=php_hyperwave.dll
;[PHP_IBM_DB2]
;extension=php_ibm_db2.dll
;[PHP_ID3]
;extension=php_id3.dll
;[PHP_IFX]
;extension=php_ifx.dll
;[PHP_IISFUNC]
;extension=php_iisfunc.dll
;[PHP_IMAGICK]
;extension=php_imagick.dll
;[PHP_INGRES]
;extension=php_ingres.dll
;[PHP_JAVA]
;extension=php_java.dll
;[PHP_LZF]
;extension=php_lzf.dll
;[PHP_MAILPARSE]
;extension=php_mailparse.dll
;[PHP_MAXDB]
;extension=php_maxdb.dll
;[PHP_MCRYPT_FILTER]
;extension=php_mcrypt_filter.dll
;[PHP_MCVE]
;extension=php_mcve.dll
;[PHP_MEMCACHE]
;extension=php_memcache.dll
;[PHP_NETOOLS]
;extension=php_netools.dll
;[PHP_NTUSER]
;extension=php_ntuser.dll
;[PHP_OGGVORBIS]
;extension=php_oggvorbis.dll
;[PHP_OPERATOR]
;extension=php_operator.dll
;[PHP_ORACLE]
;extension=php_oracle.dll
;[PHP_PARSEKIT]
;extension=php_parsekit.dll
;[PHP_PDF]
;extension=php_pdf.dll
;[PHP_PDO_IBM]
;extension=php_pdo_ibm.dll
;[PHP_PDO_INFORMIX]
;extension=php_pdo_informix.dll
;[PHP_PHAR]
;extension=php_phar.dll
;[PHP_PHPDOC]
;extension=php_phpdoc.dll
;[PHP_POP3]
;extension=php_pop3.dll
;[PHP_PRINTER]
;extension=php_printer.dll
;[PHP_RADIUS]
;extension=php_radius.dll
;[PHP_RAR]
;extension=php_rar.dll
;[PHP_RUNKIT]
;extension=php_runkit.dll
;[PHP_SAM]
;extension=php_sam.dll
;[PHP_SDO]
;extension=php_sdo.dll
;[PHP_SMTP]
;extension=php_smtp.dll
;[PHP_SSH2]
;extension=php_ssh2.dll
;[PHP_STATS]
;extension=php_stats.dll
;[PHP_STEM]
;extension=php_stem.dll
;[PHP_SVN]
;extension=php_svn.dll
;[PHP_SWISH]
;extension=php_swish.dll
;[PHP_THREADS]
;extension=php_threads.dll
;[PHP_TIMEZONEDB]
;extension=php_timezonedb.dll
;[PHP_TRANSLIT]
;extension=php_translit.dll
;[PHP_UPLOADPROGRESS]
;extension=php_uploadprogress.dll
;[PHP_WIN32PS]
;extension=php_win32ps.dll
;[PHP_WIN32SCHEDULER]
;extension=php_win32scheler.dll
;[PHP_WIN32SERVICE]
;extension=php_win32service.dll
;[PHP_WIN32STD]
;extension=php_win32std.dll
;[PHP_ZLIB_FILTER]
;extension=php_zlib_filter.dll
『肆』 關於一個php源代碼的保密工作
bcompiler 可以幫到你 , 去GOOGLE 搜一下就看到PHP.NET有介紹