Арифметика с плавающей точкой, C / C ++ путь? - PullRequest
1 голос
/ 25 октября 2011

Я создаю веб-приложение, которое выполняет очень сложные арифметические вычисления с плавающей запятой, и многие из них!Я много читал и читал, что вы можете создавать функции C (и C ++) и вызывать их из PHP, мне было интересно, заметил бы я при этом увеличение скорости?

Я бы хотелсделать это таким образом, даже если это всего лишь второе отличие, если только оно на самом деле медленнее.

Ответы [ 2 ]

3 голосов
/ 25 октября 2011

Все зависит от фактического количества вычислений, которые вы делаете. Если у вас есть тысячи вычислений, то, безусловно, будет целесообразно написать расширение, чтобы справиться с ним. В частности, если у вас много данных, то здесь PHP действительно терпит неудачу: его менеджер памяти не может обрабатывать много объектов или большие массивы (основываясь на опыте работы с такими данными).

Если алгоритм не слишком сложен, вы все равно можете сначала написать его на PHP. Это дает вам хорошую справочную скорость, но что более важно, это поможет точно определить, какой API вам нужно реализовать в модуле.


Обновление до "75-100 расчетов с 6 числами".

Если вы делаете это только один раз на загрузку страницы, я подозреваю, что это не будет значительной частью общего времени загрузки (зависит, конечно, от того, что вы еще делаете). Если вы вызываете эту функцию много раз, тогда да, даже 75 операций могут быть медленными - однако, поскольку вы используете только 6 переменных, возможно, их оптимизатор сработает хорошо (тогда как с 100 переменными это в значительной степени гарантировано не будет).

0 голосов
/ 25 октября 2011

Чек SWIG .

Swig - это способ сделать модули php (и других языков) из ваших источников Си довольно легко.

...