我想对使用PHP编写Web应用程序以及使用Django或Turbogears for Python等工具进行长时间运行的过程提出自己的看法。
据我所知: - 在PHP中,每次都从硬盘中提取页面(虽然我假设操作系统在访问后将文件保存在RAM中一段时间) - 每次都会将页面重新编译为操作码(尽管来自例如Zend的工具可以将编译版本保存在RAM中) - 每次获取页面意味着每次都要读取全局和会话数据,并重新打开与DB的连接
因此,我认为PHP在共享服务器(共享同一主机的多个站点)上运行适度使用的应用程序是有意义的,而长期运行的流程可以提供更高的性能,在专用服务器上运行的应用程序很重使用?
感谢您的反馈。
答案 0 :(得分:2)
在现实生活中,您将使用以上所有内容。
答案 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!