Пареллальная обработка в PHP
Я написал один сценарий высокой производительности в php. Который занимает 30 мс времени.
Теперь я сделал этот скрипт более герметичным, поэтому я сделал rnd по следующим пунктам. То, что я ищу, - это параллельная обработка на фрагменте кода, чтобы минимизировать время от 30 мс до 15 мс и больше распределений, чтобы скрипт мог обслуживать больше запросов.
- Gearman
я сделал кое-что на gearman, используя его асинхронный обработчик задач, я могу достичь параллельной задачи в коде php.
- C++
Второй вариант - конвертировать весь php-скрипт в расширение C++, что помогает улучшить скрипт, а в C++ я также могу использовать потоки.
все это я планирую, поэтому мне нужна помощь, они другие способы масштабирования сценария?
может с ++ помогает в параллельной обработке?
2 ответа
Вы можете попытаться разделить вашу рабочую нагрузку на части и позволить нескольким рабочим-механикам выполнять вашу задачу (параллельно). Не уверен, что это будет быстрее, хотя.
Да, вы можете легко конвертировать ваши алгоритмы PHP в код C++, я делаю это постоянно с частями нашего программного обеспечения, которые слишком медленны в PHP. На самом деле я создал библиотеку, которая может быть полезной, и это делает это преобразование очень простым: см. http://www.php-cpp.com/.
Преобразование из PHP в C++ уже дает большой прирост производительности. Переход от 30 мс до 15 мс не является чем-то необычным, просто конвертируя алгоритм из PHP в нативный C++. Если этого недостаточно, вы можете запустить несколько потоков. Я не могу посоветовать вам, как это сделать, потому что мне нужно знать ваши алгоритмы, чтобы увидеть, подходят ли они для разделения на потоки. Но стандартная библиотека C++11 теперь поставляется с классом потока, что делает это простым.