PHP关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题

关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择问题

 

一、如何选择PHP5.3的VC9版本和VC6版本

 

    VC6版本是利用Visual Studio 6编译器编译的,假如你的PHP是用Apache来架设的,那你就选择VC6版本。

 

    VC9版本是利用Visual Studio 2008编译器编译的,假如你的PHP是用IIS来架设的,那你就选择VC9版本。

 

二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本

        Windows版的PHP从版本5.2.1开始有Thread Safe(线程安详)和None Thread Safe(NTS,非线程安详)之分,这两者差异在于那里?到底应该用哪种?这里做一个简朴的先容。


 从2000年10月20日宣布的第一个Windows版的PHP3.0.17开始的都是线程安详的版本,这是由于与Linux/Unix系统是回收多历程的事情方法差异的是Windows系统是回收多线程的事情方法。假如在IIS下以CGI方法运行PHP会很是慢,这是由于CGI模式是成立在多历程的基本之上的,而非多线程。一般我们会把PHP设置成以ISAPI的方法来运行,ISAPI是多线程的方法,这样就快多了。但存在一个问题,许多常用的PHP扩展是以Linux/Unix的多历程思想来开拓的,这些扩展在ISAPI的方法运行时就会堕落搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安详方法,但CGI模式对付每个HTTP请求都需要从头加载和卸载整个PHP情况,其耗损是庞大的。


 为了分身IIS下PHP的效率和安详,微软给出了FastCGI的办理方案。FastCGI可以让PHP的历程反复操作而不是每一个新的请求就重开一个历程。同时FastCGI也可以答允几个历程同时执行。这样既办理了CGI历程模式耗损太大的问题,又操作上了CGI历程模式不存在线程安详问题的优势。 


       先从字面意思上领略,Thread Safe是线程安详,执行时会举办线程(Thread)安详查抄,以防备有新要求就启动新线程的CGI执行方法而耗尽系统资源。Non Thread Safe长短线程安详,在执行时不举办线程(Thread)安详查抄。


 因此,假如是利用ISAPI的方法来运行PHP就必需用Thread Safe(线程安详)的版本;而用FastCGI模式运行PHP的话就没有须要用线程安详查抄了,用None Thread Safe(NTS,非线程安详)的版本可以或许更好的提高效率。

 

    再来看PHP的两种执行方法:ISAPI和FastCGI。

 

    ISAPI执行方法是以DLL动态库的形式利用,可以在被用户请求后执行,在处理惩罚完一个用户请求后不会顿时消失,所以需要举办线程安详查抄,这样来提高措施的执行效率,所以假如是以ISAPI来执行PHP,发起选择Thread Safe版本;

 

    而FastCGI执行方法是以单一线程来执行操纵,所以不需要举办线程的安详查抄,撤除线程安详查抄的防护反而可以提高执行效率,所以,假如是以FastCGI来执行PHP,发起选择Non Thread Safe版本。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8521.html