Mysql入门系列:在MYSQL中如何使用API
2006-12-31 10:51:49 来源:WEB开发网当Perl 和PHP 以模块形式安装时(像mod_perl 和m o d _ p h p 3),哪一个完成得更好一些?那就是争论的主题,以下是适用于一般性的指南:
■ Perl 将脚本转换为内部可编译的形式;而PHP 却不这样。因此,一旦该脚本通过语法分析,则Perl 可更快地执行它,特别是对于具有大量迭代的循环。
■ mod_perl 可以运行脚本高速缓存来提高重复执行的脚本的性能。如果脚本在高速缓存中,则Perl 可更快地开始执行脚本,因为它不需要再一次分析。否则, PHP 开始执行的该脚本的速度更快。
■ mod_perl 比PHP 有更大的内存覆盖区;利用mod_perl 连接的Apache 进程比利用mod_php3 的更大。PHP 被假定必须在另一个进程的内部协同存在,并且在那个进程内部可以多次激活或撤消。Perl 被设计成从命令行作为独立程序运行,而不是作为被嵌入在Web 服务器进程中的一个语言进行运行。这可能使它付出较大的内存覆盖区;
Perl是模块,因此它不运行在自身环境中。脚本的高速缓存和该脚本使用的附加Perl模块是付出较大的内存覆盖区的另外的因素。在这两种情况下,有更多的代码使用内存,并将运行的Apache 进程保留在内存中。
在脚本运行速度方面,Perl 无论有什么可超过PHP 的优势,都被PHP 4 除掉了。PHP 4 在它的能力和接口方面类似于PHP 3,但它合并了Zend,Zend 是一种更高性能的解释程序的引擎。
无论如何,所有的这些因素只导致Perl 和PHP 的模块版本之间性能比不同。无论您选择哪种语言,最重要的是尽可能地避免独立的解释程序。
解释程序的独立版本的确有一个优点超过它的模块版本,即可以安排它在不同的用户ID下运行。模块版本始终运行在与Web 服务器相同的用户ID 下,出于安全原因,该用户是一个典型的具有很少权限的账号。对于需要特殊权限的脚本来说不能很好地运行(例如,如果您需要能读写受保护的文件)。如果愿意,可以将模块方法和独立方法结合起来:缺省情况下使用模块版本,而在具有特定用户的权限的脚本的情况下使用独立版本。
更多精彩
赞助商链接