PHP与长期运行的进程(Python,Java等)?

时间:2009-03-12 16:22:13

标签: php python

我想对使用PHP编写Web应用程序以及使用Django或Turbogears for Python等工具进行长时间运行的过程提出自己的看法。

据我所知: - 在PHP中,每次都从硬盘中提取页面(虽然我假设操作系统在访问后将文件保存在RAM中一段时间​​) - 每次都会将页面重新编译为操作码(尽管来自例如Zend的工具可以将编译版本保存在RAM中) - 每次获取页面意味着每次都要读取全局和会话数据,并重新打开与DB的连接

因此,我认为PHP在共享服务器(共享同一主机的多个站点)上运行适度使用的应用程序是有意义的,而长期运行的流程可以提供更高的性能,在专用服务器上运行的应用程序很重使用?

感谢您的反馈。

5 个答案:

答案 0 :(得分:2)

  • 使用APC,默认情况下很快将包含在PHP中,编译后的字节码保存在RAM中。
  • 使用mod_php,这是使用PHP的最流行的方式,PHP解释器保留在Web服务器的内存中。
  • 使用APC data storememcache,您可以在RAM中拥有持久对象,而不是通过从数据库中提取数据来重新创建它们。

在现实生活中,您将使用以上所有内容。

答案 1 :(得分:2)

应用memcache,操作码缓存和连接池之后,PHP和其他选项之间唯一真正的区别是PHP是短期的,基于处理的,而其他选项通常是基于长期多线程的。

PHP的优势在于它编写脚本很简单。您不必担心内存管理(它总是在请求结束时发布),您不必非常担心并发性。

我可以看到的主要缺点是,一些更高级(有时更疯狂?)的事情更难:预计算结果,加温缓存,重用现有数据,请求优先级和异步编程。我相信人们可以想到更多。

但大多数情况下,这些缺点并不是什么大问题。您可以通过添加更多计算机和使用更多缓存来扩展。一般的Web开发人员不需要担心并发控制或内存管理,所以从删除它们中获取微不足道的打击并不是什么大问题。

答案 2 :(得分:1)

PHP在我看来很适合使用,性能开销很少被注意到。通常会有其他过程延迟程序。用eAccelerator等方法缓存PHP程序很容易。

答案 3 :(得分:0)

许多人都注意到,PHP和Django都将成为你的瓶颈。在硬盘上点击PHP上的字节码对于流量大的网站来说是无关紧要的,因为缓存将在那时接管。 Django也是如此。

模型/视图和用户体验设计对语言本身的性能有很大的好处。

答案 4 :(得分:-1)

PHP是一种像Java等语言。 只有你的可执行文件是php二进制文件而不是JVM!您可以为PHP-Scripts设置另一个MAX-Runtime而不会出现任何问题(如果您的共享托管服务提供商允许您这样做)。

您的应用运行的位置不应取决于服务器的类型。它应该取决于应用程序使用的资源(CPU时间,RAM)以及服务器/ Vserver /共享主机给出的内容!

出于性能调整的原因,您应该查看eAccelerator等。 Apache还支持连接池模块!见mod_dbd。 如果需要扩展(如在集群中),可以使用分布式内存缓存系统,如memcached