‘壹’ 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有介绍