Для высоких требований к масштабируемости и производительности, предпочтительно ли иметь C ++ или Java реализацию в бэкэнде приложения PHP? - PullRequest
2 голосов
/ 18 января 2011

Для высокой масштабируемости и производительности для социального портала, желательно ли иметь C ++ или Java-реализацию в бэкэнде приложения PHP?

Каковы преимущества и компромиссы того же самого?

Ответы [ 4 ]

4 голосов
/ 19 января 2011

С точки зрения производительности, C ++ даст вам чуть больше, чем Java или PHP, и немного дальше, чем C #. Под этим я подразумеваю, что если вы реализуете один и тот же алгоритм на этих разных языках, вы, скорее всего, увидите лучшую производительность в C ++ (хотя это будет зависеть именно от того, что вы делаете, и от того, как вы это делаете - другой язык сам по себе это не волшебная пуля; вам нужно научиться наилучшим образом использовать этот язык, что может занять годы).

Как сказал @spender, использование хорошо продуманных алгоритмов и архитектуры обычно дает больший выигрыш в производительности и гораздо больший выигрыш в масштабируемости, чем простой переход на другой язык. Производительность в основном заключается в эффективности (минимизация использования ресурсов, таких как пропускная способность, память, диск и ЦП), а масштабируемость - в первую очередь в обеспечении параллельной работы (минимизация конкуренции для таких ресурсов, как данные, пропускную способность, память и ЦП, а также минимизацию необходимости взаимодействия различных частей вашей системы)

Как сказал @Kugel, если у вас действительно масштабируемая архитектура, вы можете в некоторой степени просто использовать больше оборудования для решения этой проблемы, что может оказаться более дешевым подходом, чем переписывание всего на другом языке. Однако, если ваш сайт успешен, повышение эффективности вашего кода приведет к снижению вашего оборудования и эксплуатационных расходов.

Другое соображение может быть связано с разработкой / обслуживаемостью - если вы являетесь экспертом в PHP и новичком в C ++, вы можете выжать из PHP больше, чем из C ++. Вы должны рассмотреть всю картину и решить, какое решение является наиболее «коммерчески жизнеспособным», а не только то, которое является теоретически наиболее эффективным. Или вы можете обнаружить, что ваше «собранное и удивительно хорошо работающее» PHP-решение готово к работе через неделю, в то время как ваш высоко оптимизированный C ++ так и не закончится.

2 голосов
/ 19 января 2011

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

1 голос
/ 18 января 2011

Прежде всего PHP - это уже бэкэнд. Сам PHP реализован на C или C ++.

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

Для производительности, такой как "как можно быстрее обработать один запрос", язык обычно имеет значение, поэтому Facebook написал PHP для компилятора C ++.

0 голосов
/ 19 января 2011

Это зависит от вашего определения «высокий» и десятков других факторов. Обычно производительность должна быть просто «достаточно». Исходя из моего опыта, попытка написать максимально быструю реализацию с самого начала может иметь неприятные последствия. Что касается выбора языка IMO, это зависит больше от людей, пишущих код, и их опыта работы с проблемной областью.

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