Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的内存管理与Python中的内存管理有何不同?_Php_Python_Memory Management_Garbage Collection_Webserver - Fatal编程技术网

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

PHP中的内存管理与Python中的内存管理有何不同?,php,python,memory-management,garbage-collection,webserver,Php,Python,Memory Management,Garbage Collection,Webserver,在处理方式上有什么不同 具体来说,为什么在生产级长寿命应用程序(如web服务器)中使用Python很常见,而PHP却没有获得类似的效率级别?PHP被设计为一种超文本脚本语言。每个过程都设计为在很短的时间内结束。所以内存管理和GC基本上不重要 然而,PHP的易用性和普及性使得它在诸如守护进程、大量计算、套接字服务器等长寿命程序中得到了应用 PHP5.3引入了许多特性和修复程序,使其适用于此类应用程序,但在我看来,内存管理在这方面的重要性较低 PHPs错误管理现在非常好,但正如我所知道的每种编程语言

在处理方式上有什么不同


具体来说,为什么在生产级长寿命应用程序(如web服务器)中使用Python很常见,而PHP却没有获得类似的效率级别?

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

然而,PHP的易用性和普及性使得它在诸如守护进程、大量计算、套接字服务器等长寿命程序中得到了应用

PHP5.3引入了许多特性和修复程序,使其适用于此类应用程序,但在我看来,内存管理在这方面的重要性较低

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

您仍然无法使用与编写Java或Python应用程序相同的样式进行编码。许多PHP程序可能会出现Java/Python所没有的严重问题

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

我工作的公司有很多用PHP编写的系统程序和守护进程,它们运行得非常出色

我认为PHP最大的警告是它的多处理和线程能力(第二个基本上不存在)


当然,也有可能分叉进程、访问共享内存、进行进程间通信以及使用消息队列等。但是Python在这方面遥遥领先,因为它是为这样的工作而自下而上设计的。

一些见解PHP在5.2/5.3系列之前的内存管理相当糟糕。垃圾收集器无法中断循环引用,因此内存泄漏很常见,很难跟踪。这使得PHP不适合长时间运行的脚本。谢谢!您认为这在5.2/5.3系列中是“固定的”吗?嗯,垃圾收集机制得到了很大的改进。它是否算作“固定”是另一回事。GC一开始是一个昂贵的操作,现在必须处理循环引用使得它变得更慢。当然,如果您的脚本永远不需要执行GC运行,您可能永远不会注意到差异。再次感谢您……我想它可能正处于这样一个阶段,基准测试现在将是一个合理的选择,可以用来计算它与Python在类似的长期任务中的性能比较。+1表示“不更好或更差”的注释。更多的人需要这样的观点。在我看来,缺乏线程是最大的问题。我在很多持久性程序中使用过PHP,但从没有使用过合适的多线程程序。我真的不认为记忆或速度与人气差异有多大关系,至少从5.3开始。