2014-01-25 4 views
0

Я написал один сценарий высоких исполнений в php. Для выполнения требуется 30 мс.Обработка Parellal в PHP

теперь у меня есть этот скрипт более герметичным, поэтому я сделал rnd по следующим пунктам. То, что я ищу, - это параллельная обработка на куске кода, чтобы свести к минимуму время от 30 мс до 15 мс и более, поэтому скрипт может обслуживать больше запросов.

  1. Gearman

я сделал некоторые RND на Gearman используя это асинхронный обработчик задачи я могу достичь параллельной задачи в PHP коде.

  1. C++

Второй вариант конвертировать весь сценарий PHP в C++ расширение, которое помогает улучшить сумы и в C++ я также может использовать потоки.

все это я планирую, поэтому мне нужна помощь, это другие способы, которыми я могу масштабировать сценарий?

Может C++ помогает в параллельной обработке?

+0

прочитайте это ... может быть help http://stackoverflow.com/questions/6107339/parallel-processing-in-php-how-do-you-do-it –

+0

Err, да, C++ * can * be используется в параллельной обработке. Это действительно ваш вопрос? – meagar

+0

Как C++ помогает мне масштабировать php-скрипт? –

ответ

0

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

+0

У Gearman есть проблемы для поддержания постоянных соединений. не поддерживать постоянное соединение, например apache. –

0

Да, вы можете легко преобразовать ваши PHP-алгоритмы в код на C++, я делаю это все время с части нашего программного обеспечения, которые слишком медленны в PHP. Я действительно создал для него библиотеку, которая может быть полезна, и это делает очень простое преобразование: см. http://www.php-cpp.com.

Преобразование только с PHP на C++ уже дает большой прирост производительности. Переход от 30 мс до 15 мс вовсе не является чем-то необычным, просто преобразуя алгоритм из PHP в родной С ++. Если этого недостаточно, вы можете запустить несколько потоков. Я не могу советовать вам, как это сделать, потому что мне нужно будет знать ваши алгоритмы, чтобы понять, подходят ли они для разделения потоков. Но в библиотеке C++ 11 std теперь есть класс потоков, который делает это простым.