php - PHP 中的内存管理与 Python 中的内存管理有何不同?

标签 php python memory-management garbage-collection webserver

它们的处理方式有何不同?

具体来说,为什么在网络服务器等生产级长期应用程序中发现 Python 很常见,而 PHP 却没有达到类似的效率水平?

最佳答案

PHP 被设计为一种超文本脚本语言。每个过程都设计为在很短的时间后结束。所以内存管理和GC基本没关系。

然而,PHP 的易用性和流行性促使其在长期存在的程序中使用,例如守护进程、大量计算、套接字服务器等。

PHP 5.3 引入了许多功能和修复,使其适合此类应用程序,但我认为内存管理在这方面的重要性较低。

PHP 的错误管理现在非常好,但正如我所知道的每一种编程语言都可能产生内存泄漏。

您仍然无法使用您可以编写 Java 或 Python 应用程序的相同风格进行编码。许多 PHP 程序可能会出现严重的问题,而 Java/Python 则不会。

您可以将其描述为“更糟”,但我不会。 PHP 只是一组不同的工具,您必须处理不同的工具。

我工作的公司有很多用 PHP 编写的系统程序和守护进程,运行起来非常棒。

我认为当您描述“生产级长生命周期应用程序”时,PHP 最大的警告是它的多处理和线程能力(第二个基本上不存在)。

当然有可能 fork 进程、访问共享内存、进行进程间通信以及拥有消息队列和其他东西。但 Python 在这方面遥遥领先,因为它是为此类工作而设计的自下而上的。

关于php - PHP 中的内存管理与 Python 中的内存管理有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6158033/

相关文章:

php - 为mysql数据添加前缀

python - Physik Instrumente 的 PI Python 库

python - 缓慢的网络服务问题

ios - 如何检测未正确发布的内容

swift - 如果我在 Swift 中得到一个 UnsafeMutablePointer,我应该免费打电话吗?

c++ - 使用多个堆进行内存管理有什么好处吗?

PHP 调整图像大小并使用 imagemagick 裁剪

php - 使用Doctrine中的DriverManager和QueryBuilder正确测试连接

php - 比较来自 mysql 的 php 中的两个日期

python - DTW 集群适当数量的指标