用C代码替换复杂的PHP代码

时间:2010-11-02 16:59:06

标签: php c exec

我使用PHP查询Oracle数据库,但在某个时刻,可能是因为PHP代码非常复杂,我得到了内存泄漏。我正在努力解决这个问题,但我问你:如果我将所有复杂的PHP代码转换为C代码,并在需要时从PHP调用“exec”,我是否在性能和内存优化方面获得了一些成果?或者这是一个坏主意?为什么?

4 个答案:

答案 0 :(得分:7)

如果你想用C语言重写代码,那么你最好把它作为一个PHP模块编写,而不是使用exec()从PHP调用的独立程序。

答案 1 :(得分:1)

只是一个半相关的想法:

http://github.com/facebook/hiphop-php/wiki

  

HipHop for PHP转换PHP源代码   代码转换为高度优化的C ++。它是   由Facebook开发并发布   作为2010年初的开源。

答案 2 :(得分:1)

一般来说,您将失去性能,因为系统必须生成另一个进程并等待它在返回PHP脚本之前终止。 PHP中的内存泄漏是我很少看到的,尽管它们可能会发生。它也可以是泄漏内存的底层C包装器(每个示例都是Oracle DB包装器)。安装Xdebug之类的调试器可以帮助您找到导致此泄漏的原因。

我建议您阅读:Finding cause of memory leaks in large PHP stacks

PHP 5.3还引入了garbage collector

答案 3 :(得分:0)

任何复杂性都是相对的。如果你不能分解复杂性,用另一种形式或语言写它就无济于事。

简而言之:没有一些背景就无法回答。