问题描述
|
处理方式有何不同?
具体来说,为什么通常会发现在生产级长期使用的应用程序(如Web服务器)中使用Python,而PHP没有给出类似的效率水平呢?
解决方法
PHP被设计为超文本脚本语言。每个过程都旨在在很短的时间内结束。因此,内存管理和GC基本上没有关系。
但是,PHP的易用性和流行性已在长期存在的程序(例如守护程序,大量计算,套接字服务器等)中调用了它的用法。
PHP 5.3引入了许多使其适合于此类应用程序的功能和修复,但是在我看来,内存管理在此问题上的重要性较低。
PHP的错误管理现在相当不错,但是正如我所知道的每种编程语言一样,它可能会导致内存泄漏。
您仍然无法使用与Java或Python应用程序相同的样式进行编码。许多PHP程序可能会显示严重的问题,而Java / Python则不会。
您可以将其描述为“更糟”,但我不会。 PHP只是一组您必须处理不同的工具。
我工作的公司有很多用PHP编写的系统程序和守护程序,它们运行起来很吸引人。
我认为在描述“生产级别的长期应用程序”时,PHP的最大警告是其多处理和线程处理能力(第二个基本上不存在)。
当然,有可能分叉进程,访问共享内存,进行进程间通信并具有消息队列和内容。但是Python在这方面遥遥领先,因为它是专为此类工作而设计的。