Ответ 1
Ну, Facebook претерпел МНОГИЕ изменения, и изначально он не был разработан, чтобы быть эффективным. Это было разработано, чтобы сделать это работа. Я абсолютно не представляю, как выглядит код, и вы, вероятно, не найдете много информации о нем (по очевидным соображениям безопасности и авторских прав), но просто взгляните на API. Посмотрите, как часто оно меняется и сколько не работает должным образом, больше или вообще.
Я думаю, что самый большой туз в их рукаве - хип-хоп. http://developers.facebook.com/blog/post/358 Вы можете использовать HipHop самостоятельно: https://github.com/facebook/hiphop-php/wiki
Но если вы спросите меня, это очень амбициозная и, вероятно, трата времени. Hiphop только поддерживает так много, что не может просто конвертировать все в C++. Так что это говорит нам? Что ж, это говорит нам о том, что Facebook НЕ в полной мере использует язык PHP. Он не использует последнюю версию 5.3, и я готов поспорить, что многое еще совместимо с PHP 4. В противном случае они не могли бы использовать HipHop. Хип-хоп является хорошей идеей и должен расти и расширяться, но в его нынешнем состоянии он не очень полезен для многих людей, которые создают НОВЫЕ PHP-приложения.
Там также PHP в JAVA через такие вещи, как Resin/Quercus. Опять же, он не поддерживает все...
Следует также отметить, что если вы используете какой-либо нестандартный модуль PHP, вы не сможете преобразовать этот код в C++ или Java. Однако... Давайте посмотрим на модули PHP. Они составлены в C++. Так что, если вы можете создавать модули PHP, которые делают что-то (например, синтаксический анализ XML и т.д.), То вы в основном (за исключением некоторого взаимодействия) работаете с той же скоростью. Конечно, вы не можете просто сделать модуль PHP для всех возможных нужд и всего вашего приложения, потому что вам придется перекомпилировать, и это будет намного сложнее для кода и т.д.
Однако... Есть несколько удобных модулей PHP, которые могут помочь с проблемами скорости. Хотя, в конце концов, у нас есть эта удивительная вещь, известная как "облако", и с ее помощью мы можем масштабировать наши приложения (включая PHP), чтобы это больше не имело значения. Оборудование становится все дешевле и дешевле. Amazon только что снизил цены (опять же), если говорить о.
Так что, пока вы кодируете свое PHP-приложение, основываясь на идее, что оно понадобится в один день... Тогда я думаю, что у вас все хорошо, и я не совсем уверен, что я даже посмотрю на Facebook и что они сделали, потому что когда они сделали это, это был совершенно другой мир, и теперь он пытается поддерживать эту инфраструктуру и поддерживать ее... Ну, вы получаете такие вещи, как HipHop.
Теперь, как хип-хоп поможет вам? Не будет Не может Вы начинаете заново, вы можете использовать PHP 5.3. Я настоятельно рекомендую изучить фреймворки PHP 5.3 и все новые преимущества, которые дает PHP 5.3 вместе с библиотеками SPL, а также подумать о вашей базе данных. Скорее всего, вы обслуживаете контент из базы данных, поэтому проверьте MongoDB и другие типы баз данных, которые не содержат схем и ориентированы на документы. Они намного быстрее и лучше для самого "распространенного" типа веб-сайта/приложения.
Посмотрите на НОВЫЕ компании, такие как Foursquare и Smugmug и некоторые другие компании, которые используют НОВУЮ технологию и КАК они ее используют. Несмотря на то, что Facebook настолько успешен, я, честно говоря, не стал бы рассматривать их как "как" создать эффективный веб-сайт/приложение. Я не говорю, что у них нет очень (очень) талантливых людей, которые там работают, которые творчески решают (свои) проблемы... Я также не говорю, что Facebook не очень хорошая идея в целом и что это не так. успешный и что вы не должны получать идеи от него.... Я просто говорю, что если бы вы могли просматривать весь их исходный код, вы, вероятно, не выиграете от этого.