Заменить сложный PHP-код на C-код - PullRequest
2 голосов
/ 02 ноября 2010

Я запрашиваю базу данных Oracle, используя PHP, но в определенный момент, вероятно, из-за того, что код PHP очень сложный, я получаю утечку памяти. Я работаю, чтобы решить эту проблему, но я спрашиваю вас: если я преобразую весь сложный код PHP в код C и при необходимости вызываю «exec» из PHP, получу ли я что-то в оптимизации производительности и памяти? Или это плохая идея? А почему?

Ответы [ 4 ]

7 голосов
/ 02 ноября 2010

Если вы хотите переписать код на C, то вам лучше написать его как модуль PHP, а не как отдельную программу, вызываемую из PHP с использованием exec ().

1 голос
/ 02 ноября 2010

Вообще говоря, вы потеряете производительность, поскольку система должна порождать другой процесс и ждать его завершения, прежде чем он вернется к вашему PHP-скрипту. Утечки памяти в PHP - это то, что я редко вижу, хотя они могут случаться. Это также может быть базовая оболочка C, которая теряет память (оболочка Oracle DB, для каждого примера). Установка отладчика типа Xdebug может помочь вам найти причину этой утечки.

Я предлагаю вам прочитать: Поиск причины утечек памяти в больших стеках PHP .

В PHP 5.3 также появился сборщик мусора .

1 голос
/ 02 ноября 2010

Просто наполовину связанная мысль:

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

HipHop для PHP превращает исходный код PHP в высоко оптимизированный C ++.Он был разработан Facebook и был выпущен как открытый исходный код в начале 2010 года.

0 голосов
/ 02 ноября 2010

Любая сложность относительна.Если вы не можете разбить сложность, запись в другой форме или на другом языке не поможет.

Короче говоря: невозможно ответить без некоторого контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...