HipHop PHP (был Hyper PHP Facebook),

После этого довольно смешного интервью с Facebook "сотрудник"...

У кого-либо есть какие-либо детали о Hyper PHP (теперь переименованный к HipHop), который умные как шары парни Facebook разработали?

14
задан genesis 10 October 2011 в 14:44
поделиться

8 ответов

Теперь кот вышел из мешка:

http://developers.facebook.com/news.php?blog=1&story=358

HipHop для PHP технически не является компилятором. Скорее, это трансформатор исходного кода. HipHop программно преобразует ваш исходный код PHP в сильно оптимизированный C++ и затем использует g++ для его компиляции. HipHop выполняет исходный код семантически эквивалентным образом и жертвует некоторыми редко используемыми функциями - такими как eval() - в обмен на улучшение производительности. HipHop включает в себя трансформатор кода, переопределение системы исполнения PHP и переписывание многих распространенных расширений PHP, чтобы воспользоваться преимуществами этих оптимизаций производительности.

Другая статья о ReadWrite Web подтверждает, что Facebook получает более быстрый, отладочный домашний компилятор PHP и еще одна статья Марко Табини описывает то, что вам нужно знать.

6
ответ дан 1 December 2019 в 15:01
поделиться

Может быть, миф, может быть, все еще в разработке. Но это будет опубликовано здесь .

2
ответ дан 1 December 2019 в 15:01
поделиться

Похоже, кто-то пытался объяснить кэширование/опкоды кому-то, кто не знает программирования.

"... Видишь? Делать это все равно, что ставить H перед PHP, H как в Hyper. Итак, мы получаем, Hyper-PHP, или HPHP. И это супер быстро..."

0
ответ дан 1 December 2019 в 15:01
поделиться

NOP ... это не миф

Концепция потрясающая .. Вы можете получить ваш сайт PHP, выполнил HPHP! Тогда это будет работать как Java!: P

0
ответ дан 1 December 2019 в 15:01
поделиться

Вот что я написал и скомпилировал в .NET.

double r0;
for (int i = 0; i < 1000; i++) {
    r0 = i*i;
    Console.WriteLine(r0);
}

for (int j = 0; j < 1000; j++) {
    double r1 = j*j;
    Console.WriteLine(r1);
}

Это то, что я получаю от .NET Reflector , когда CIL воспроизводится обратно в код.

for (int i = 0; i < 0x3e8; i++)
{
    double r0 = i * i;
    Console.WriteLine(r0);
}
for (int j = 0; j < 0x3e8; j++)
{
    double r1 = j * j;
    Console.WriteLine(r1);
}

Так что оба выглядят точно так же после компиляции. В управляемых языках код преобразуется в CL/байтовый код, а во время выполнения - в машинный язык. Так что в машинном языке двойник может даже не быть создан в стеке. Это может быть просто регистр, так как код отражает, что это временная переменная для функции WriteLine . Существует полный набор правил оптимизации только для циклов. Так что среднестатистический парень не должен беспокоиться об этом, особенно на управляемых языках. Существуют случаи, когда можно оптимизировать управление кодом, например, если необходимо объединить большое количество последовательностей, используя только последовательность a; a + = anotherstring [i] против использования StringBuilder . Есть очень большая разница в производительности между обоими. Есть много таких случаев, когда компилятор не может оптимизировать ваш код, потому что он не может понять, что предназначено в большей области. Но это может в значительной степени оптимизировать основные вещи для вас.

-121--542459-

Java 7 будет иметь имеет Files.walkFileTree :

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

Теперь существует целый учебник Oracle по этому вопросу .

-121--587634-

Если производительность является проблемой, вы, конечно, посмотрите на, например, Quercus? ( http://www.caucho.com/resin-3.0/quercus/ ) (Я никогда не смотрел на Кверкуса, поэтому не могу сказать многое другое)

-1
ответ дан 1 December 2019 в 15:01
поделиться

Я удивлюсь, если релиз будет называться HyperPHP, так как это также имя установленного веб-хоста

2
ответ дан 1 December 2019 в 15:01
поделиться

Как насчет этого:

for f in *.txt
do
  band=$(echo "$f" | cut -d'-' -f1 | trim)
  if [ -d "$band" ]
  then
    mkdir "$band"
  fi
  mv "$f" "$band"
done
-121--4904013-

Эй, если вы хотите сделать Amiga программирование для удовольствия, есть НОВОЕ программное обеспечение, которое будет раскачивать ваш мир:

Голливуд 4,5 от Airsoft Softwair

Это очень простой и веселый язык, в основном нацеленный на мультимедийные презентации. Это скриптовый язык, основанный на синтаксисе Lua, но он также немного напоминает мне старого доброго Амоса, потому что это много и мощных функций gfx и звука. Он очень прост в использовании, поставляется с отличной документацией и множеством примеров. Также это мультиплатформа, интерпретатор/компилятор работает на всех различных платформах Amiga (включая OS 3.1, AROS, MorphOS...), а готовые, скомпилированные скрипты даже работают без усилий как на Windows, так и на Mac OS X!

Вы можете найти его немного дорогим в 89 евро, но я могу сказать вам, что это стоит инвестиций, если вы хотите развлекаться программированием, и я не видел ничего подобного ни на одной другой платформе!

Возможно, вы захотите проверить одно из моих творений: -). Это файтинг с настоящими актерами, это делается в Голливуде и версию для Windows можно скачать прямо здесь:

http://dl.dropbox.com/u/2920309/BEF-win32.zip

-121--1168706-

Сейчас ходит слух о каком-то PHP runtime release из Facebook во вторник февраля 2. Это может быть Hyper PHP.

2
ответ дан 1 December 2019 в 15:01
поделиться

Во-первых, ваш вопрос, похоже, на самом деле «Как иметь окно меню в соответствии с руководством Apple Human Interface Guidelines», а не «создание закадрового кадра на Java», что кажется чудовищным взломом.

Я предлагаю проверить « Интеграция Mac OS X для Java » компании Apple, которая в разделе « Меню окна » показывает, что именно вы пытаетесь достичь:

Руководство Apple Human Interface Guidelines предлагает, чтобы все приложения Mac OS X предоставляли меню окна Меню «Окно» должно содержать список окон с галочкой рядом с активным окном.

-121--4435227-

Если вы будете работать с графикой на элементе HTML 5 canvas, вы можете проверить библиотеку Processing.js . Существует библиотека анимации , но вы, вероятно, найдете ее полезной для многих других вещей .

Processing.js использует JavaScript для рисования фигур и манипулирования изображениями на элемент Холста HTML 5. Код: легкий, простой в изучении и делает идеальный инструмент для визуализации данные, создание пользовательских интерфейсов и разработка веб-игр.

Для анимации можно просмотреть следующее:

-121--3521824-

По вашей ссылке...

Сотрудники Facebook знают больше, чем большинство, о ценности частной жизни.

О, правда? Они есть? Потому что все, что я когда-либо читал о Facebook, это то, что они понятия не имеют, что частная жизнь такое или когда-либо было.

Очевидно, что этой статье нельзя доверять.

0
ответ дан 1 December 2019 в 15:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: