Использование C ++ для внутренних вычислений в веб-приложении - PullRequest
9 голосов
/ 22 сентября 2010

Я запускаю PHP-интерфейс для приложения, которое много работает с данными и использует Cassandra в качестве хранилища данных.

Однако я знаю, что PHP не даст мне производительность, необходимую для некоторых вычислений (а также управления огромным количеством данных, которые должны быть в памяти)

I 'Я хотел бы написать материал на C ++ и получить доступ к нему из приложения PHP.Я пытаюсь найти наилучший способ сопряжения двух.

Некоторые варианты, на которые я смотрел:

  1. Экономия (Естественный выбор, так как я уже использую егодля Кассандры)
  2. Протоколные буферы Google
  3. gSOAP
  4. Ось Apache

Выше я только ограничиваюсь, я не ограничиваюсебя.

Данные, передаваемые в приложение PHP, очень малы, поэтому потоковая передача не требуется.Передаются только результаты расчетов.

Что вы, ребята, думаете?

Ответы [ 3 ]

3 голосов
/ 16 октября 2010

Если бы я был тобой, я бы использовал бережливость, нет смысла тратить на другую платформу RPC.Иди с тем, что есть и уже знаешь.Thrift делает это очень просто (как и буферы протокола Google, но вам не нужны два разных механизма)

2 голосов
/ 22 сентября 2010

Вы ограничиваете себя наличием C ++ в качестве отдельного приложения? Вы рассматривали возможность взаимодействия с PHP напрямую? (т.е. связать расширение C ++ с вашим PHP-приложением).

Я не говорю, что второй подход обязательно лучше первого, но вы все равно должны рассмотреть его, потому что он предлагает несколько других вариантов компромисса. Например, задержка передачи данных между PHP и C ++, безусловно, будет выше, когда они являются отдельными приложениями, чем когда они динамически связаны между собой одним и тем же приложением.

1 голос
/ 16 октября 2010

Было бы полезно узнать больше информации о том, сколько данных понадобятся вашим вычислениям. Экономия кажется разумным выбором. Вы можете использовать его между PHP, вашим вычислительным узлом и бэкэндом Cassandra. Если ваш результат небольшой, ваш RPC-транспорт между PHP и вычислительным узлом не будет иметь большого значения.

...