The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Разработчики PHP представили интерпретатор нового поколения (PHPNG)

08.05.2014 10:25

В списке рассылки разработчиков PHP объявлено о начале тестирования проекта phpng, в рамках которого ведётся работа над следующим поколением интерпретатора для языка программирования PHP, отличающегося переходом на новый вариант движка Zend Engine, в котором будут воплощены новые идеи по организации работы с памятью и применению технологий JIT-компиляции. Итогом разработки станет выпуск PHP 5.7, примечательный существенным увеличением производительности выполнения скриптов. В настоящее время начальная версия phpng уже доступна для сборки и тестирования.

Сообщается, что с момента выпуска PHP 5.0 наблюдается значительный прогресс в области увеличения производительности PHP - скорость выполнения синтетических тестов увеличилась в 6 раз, а ускорение выполнения реальных приложений оценивается в два раза. При разработке новой ветки большое внимание уделяется экспериментам с технологиями JIT-компиляции. В частности, на базе LLVM подготовлен прототип встроенного в OPCache JIT-компилятора, что позволило по сравнению с PHP 5.5 увеличить скорость выполнения тестового набора в 10 раз, но в реальных приложениях ускорение составило всего несколько процентов.

Различия в показателях тестов и реальных приложений заставили задуматься разработчиков и провести более глубокую ревизию возможных узких мест, устранение которых позволило бы добиться более ощутимого прогресса в оптимизации. Сама по себе виртуальная машина уже достаточно хорошо оптимизирована, но проблема оказалась в методах работы с памятью и организации хранения структур данных. В текущем виде, работа со структурами данных приводит к большому числу операций выделения и перераспределения памяти, а также подсчёта ссылок на структуры для работы сборщика мусора. В итоге, типичное PHP-приложение тратит примерно 20% времени на выполнение задач менеджера памяти, 10% на обработку хэш-таблиц, 30% на вызов внутренних функций и только 30% на выполнение кода в виртуальной машине.

При подготовке PHPNG основное внимание уделено изменению методов работы с памятью и переходу на новые структуры хранения данных, которые минимизируют число операций в куче. Идея переработки структур была сопряжена с определённым риском, связанным с появлением непредсказуемых результатов глобального рефакторинга. Сейчас уже доступны первые результаты проделанной работы, которые показали, что разработчиками был выбран правильный путь, который привёл к существенному повышению производительности, снижению потребления памяти и стал хорошей предпосылкой к внедрению новых JIT-технологий для дальнейшего ускорения работы PHP.

В среднем изменения позволили добиться увеличения производительности реальных приложений на 10-30%:

  • Wordpress 3.6 – 20.0% (было 211, стало 253 запросов в секунду)
  • Drupal 6.1 – 11.7% (1585/1770 запросов в секунду)
  • Qdig – 15.3% (482/555 запросов в секунду)
  • ZF test app – 30.5% (166/217 запросов в секунду)

Из идей по проведению дальнейших оптимизаций отмечается:

  • Оптимизация вызова и возврата из функций;
  • Замена Zend Memory Manager на xx_malloc, что позволит увеличить производительность приблизительно на 2%;
  • Переработка очень медленного API zend_parse_parameters();
  • Сокращение объёма данных, копируемых из областей разделяемой памяти OPCache в память процесса;
  • Переход на libpcre с поддержкой JIT-компиляции регулярных выражений;
  • Замена ext/json на pecl/jsond.


  1. Главная ссылка к новости (http://news.php.net/php.intern...)
  2. OpenNews: Facebook представил Hack, вариант языка PHP со статической типизацией
  3. OpenNews: Начало тестирования PHP 5.6.0
  4. OpenNews: Подтверждён факт взлома инфраструктуры проекта PHP
  5. OpenNews: Новая версия PHP QB 1.3, позволяющего существенно увеличить производительность PHP-программ
  6. OpenNews: Facebook анонсировал виртуальную машину HipHop и JIT-компилятор для языка PHP
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: php, jit
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (75) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 10:29, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –15 +/
    Т.е. теперь JS-истерика по переписыванию всего чего не надо на JS прекратится и начнётся PHP-истерика. Ведь PHP теперь сравним с Си:)
     
     
  • 2.3, imprtat (ok), 10:35, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +18 +/
    >  PHP теперь сравним с Си:)

    это у тебя какой-то свой, принципиально новый, Си, раз с ним пхп можно сравнить?

     
     
  • 3.12, A.Stahl (ok), 11:29, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет, это у тебя какой-то свой принципиально новый парсер шуток, проглатывающий смайлики.
     
     
  • 4.14, Аноним (-), 11:34, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    s/новый парсер шуток, проглатывающий смайлики/фильтр тупых шуток/
     
     
  • 5.15, A.Stahl (ok), 11:36, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не-а. Если бы это был фильтр, то он просто бы эту шутку не увидел и не ответил бы.
     
     
  • 6.48, Аноним (-), 17:55, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Стоп! Тут принципиальный момент! На каком языке ваш парсер шуток написан? С или PHP? ;-/
     
  • 2.4, Аноним (-), 10:41, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На PHP и так написано подавляющее большинство сайтов. Так что ничего переписывать не надо.
     
     
  • 3.16, Аноним (-), 11:38, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да кому сейчас сдались сайты, веб приложения вот где бабки.
     
     
  • 4.31, toge (?), 14:13, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Да кому сейчас сдались сайты, веб приложения вот где бабки.

      О-о. Смышленый парень :-)
      Хе-х. Лично я на тему перешел уже.

     

  • 1.5, Аноним (-), 10:52, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а просто парсер для LLVM написать слабо?
     
     
  • 2.11, ананим (?), 11:28, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И как это повлияет на:
    > но проблема оказалась в методах работы с памятью и организации хранения структур данных.

    ?

     

  • 1.6, Аноним (-), 11:01, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Ускорение выполнение скриптов.. Извините а зачем оно надо? пользователь несколько милисикунд подождет, ничего с ним не случится. В пхп большая проблема с поддержание большого количества паралельных конектов, вот что нужно пилить. Чтобы 1000 одновременных запросов сервак держал, железо вполне позволяет, а пхп валится!
     
     
  • 2.7, Kobezzza (?), 11:12, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    http://daemon.io/
     
     
  • 3.9, Аноним (-), 11:26, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    сайт opennet отдает контент в 100 раз быстрее, чем php.
     
     
  • 4.19, бедный буратино (ok), 11:51, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    * отдаёт контент в 100 раз быстрее, чем php.
     
  • 2.13, Аноним (-), 11:29, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это битрикс, детка! Привыкай.
     
  • 2.17, Аноним (-), 11:41, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > поддержание большого количества паралельных конектов, вот что нужно пилить. Чтобы 1000
    > одновременных запросов сервак держал, железо вполне позволяет, а пхп валится!

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

     
     
  • 3.21, Куяврег (?), 12:30, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    иногда, когда погромисты на пхп слишком долго делают своё нечто, проблема пхп становится проблемой сервера.
     
     
  • 4.24, Аноним (-), 12:38, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каким боком проблема php стала проблемой сервера, это даже 2 разные программы
     
  • 3.79, Michael Shigorin (ok), 10:45, 10/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > очень смешно, что коннекты забота php, я то думал что это проблема
    > веб сервера, а интерпретатор работает с потоками.

    Первая мысль при прочтении заголовка -- "и как они собрались интерпретировать новое поколение?.."

    По описанию особой "поколенности" не заметил -- скорее текущая работа по втягиванию того, что сто лет в обед надо было втянуть, заметив отечественный MMcache.

     

  • 1.27, Аноним (-), 13:12, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Молодцы, они придумали LLVM.
     
     
  • 2.30, Аноним (-), 14:05, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    llvm как бы шире и глубже и раза в 4 старше.
     
     
  • 3.44, sometest (?), 17:38, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >в 4 старше

    лолшто?

     
  • 2.40, qqq (??), 16:41, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    llvm? что хорошая штука?
     
  • 2.58, Аноним (-), 22:38, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Они попытались его применить, но не получили прироста производительности, потому что стадия разбора и выполнения кода и так уже достаточно быстра.

    К слову, производительность LLVM тоже далека от идеала.

     
     
  • 3.72, rob pike (?), 18:16, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Она даже от GCC далека
     
  • 3.80, некто (ok), 14:16, 10/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а есть вообще достойные альтернативы llvm?
     
     
  • 4.81, rob pike (?), 21:45, 11/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Достойные по какому критерию?
    Достойные альтернативы LLVM для использования в качестве чего?
     
  • 4.89, qqq (??), 14:45, 08/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > а есть вообще достойные альтернативы llvm?

    есть: forth, erlang

     

  • 1.28, StainlessRat (??), 13:23, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Представьте, если бы сайты на ASSEMBLER писали ? Вот это ДААААА. :) Сайт открывался бы за одну миллионную секунды :)
     
     
  • 2.29, Аноним (-), 13:50, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    И закрывался бы также, фишка в том, чтобы ускорять только открытие...
     
  • 2.32, Аноним (-), 14:19, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сайт открывался бы столько времени, сколько требуется на установку tcp-соединения и передачу данного объема данных пользователю.
     
     
  • 3.43, Аноним (-), 17:20, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Сайт открывался бы столько времени, сколько времени он тратил бы на IO и Базу, а разработка длилась бы столько времени, что программисту пришлось все-таки искать жену обзаводиться кучей детей. Есть шанс, что хоть они доживут до релиза.
     
  • 3.65, Аноним (-), 00:46, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Сайт открывался бы столько времени, сколько требуется на установку tcp-соединения и передачу
    > данного объема данных пользователю.

    Да гомно вопрос - кешируй в статику или используй статические страницы. Какой-нить сишный нжинкс тебе их вытрелит как из базуки. Хоть гигабит получи, если можешь столько откачать.

     
     
  • 4.73, rob pike (?), 18:22, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Какой-нить сишный нжинкс тебе их вытрелит как из базуки.

    Ядро не даст. Больше пары сотен тысяч req/s - почти нереально.

    >Хоть гигабит получи, если можешь столько откачать.

    Говорить о bandwith в данном случае неверно - гигабит можно забить и одним огромным файлом.
    Имеют значение пакеты в секунду и реквесты в секунду.


     
  • 3.34, тоже Аноним (ok), 14:32, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Угу, то-то на какой ASP-сайт не зайдешь, он от скорости аж поскрипывает. Особенно ASPX.
     
     
  • 4.47, Аноним (-), 17:55, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Угу, то-то на какой ASP-сайт не зайдешь,

    StackOverflow?

     
     
  • 5.54, Мимо проходил (?), 19:41, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ...в котором от asp выпилили 90% всего
     
  • 5.62, Аноним (-), 00:41, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > StackOverflow

    Что-то не заметил особой скорости. Быстро - это когда какой-нибудь nginx прямо выстреливает в тебя как из базуки всю страницу, за менее чем секунду, из кеша, как статику. Вот это реально быстро - пикнуть не успел, а тебе уже страницу показали.

     
  • 3.42, Аноним (-), 17:16, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    на .net бинарники, может байт кодники?
     
  • 2.35, Аноним (-), 14:53, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    внезапно - есть и такие SDK для Web-мастеринга.
    и пакеты для "Web-писательства" на C++,к примеру.
    но продаются оч. хреново, тк доминируют "неосиляторы".
    когда последний раз кто-то писал что-то на нативном коннекте между SQL/NoSQL и Web-сервером ? то есть на бинарниках и UDF/DDL -онли ?
     
  • 2.53, arisu (ok), 18:45, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Представьте, если бы сайты на ASSEMBLER писали ? Вот это ДААААА. :)
    > Сайт открывался бы за одну миллионную секунды :)

    (пожимает плечами) есть vibe.d, например. статически типизированый компилируемый в native code язык плюс async i/o (хипстеры знают об этом из node.js). и что? для долбодятлов это всё равно чересчур сложно.

     
     
  • 3.74, rob pike (?), 18:24, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Хипстеры знают что async и nodejs это стильно, модно, молодежно.

    http://xahlee.info/w/apache_nodejs_nginx.html

     
     
  • 4.76, arisu (ok), 18:28, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Хипстеры знают что async и nodejs это стильно, модно, молодежно.

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

     

  • 1.36, SergMarkov (ok), 15:03, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    типичное PHP-приложение тратит примерно 20% времени на выполнение задач менеджера памяти, 10% на обработку хэш-таблиц, 30% на вызов внутренних функций и только 30% на выполнение кода в виртуальной машине

    блеск!

     
  • 1.37, AlexAT (ok), 15:27, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, есть ли сравнения с HHVM?
     
     
  • 2.38, Аноним (-), 16:07, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://gist.github.com/hgfischer/7965620
     
     
  • 3.39, Xaionaro (ok), 16:39, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > https://gist.github.com/hgfischer/7965620

    Зачем эта ссылка нужна? Там вообще не упоминается HHVM.

     
  • 2.75, rob pike (?), 18:26, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, есть ли сравнения с HHVM?

    Тут есть http://www.techempower.com/benchmarks/

     
     
  • 3.82, Xaionaro (ok), 10:32, 12/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Интересно, есть ли сравнения с HHVM?
    > Тут есть http://www.techempower.com/benchmarks/

    Очень странная таблица. Тут утверждается, что голый PHP работает быстрее HHVM. Притом в разы.

     
     
  • 4.83, rob pike (?), 19:30, 14/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так возьмите, проверьте, все исходники тестов выложены.
    Поделитесь результатами.
     

  • 1.41, Аноним (-), 17:15, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Анон, подскажи: теперь с brand-new JIT движком, PHP будет таким же быстрым как Ruby, где его уже 8 год как впилили и лет 5 как крутят в продакшне?
     
     
  • 2.45, sometest (?), 17:44, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >быстрым как Ruby

    Это была шутка такая?

    http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=php&

     
     
  • 3.46, Аноним (-), 17:51, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >>быстрым как Ruby
    > Это была шутка такая?

    Признавайтесь, зачем вы фракталы строите или блинную сортировку юзаете на сабже?


     
     
  • 4.50, sometest (?), 18:05, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я этого не делаю, но руби известен медленным интепретатором.

    Anyway, основная проблема уже не столько в пхп, сколько в выборках данных с бд.

     
  • 4.63, Аноним (-), 00:44, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Признавайтесь, зачем вы фракталы строите или блинную сортировку юзаете на сабже?

    Не вижу чем построение фракталов, сортировка или любой иной алгоритм так уж плохи в целях бенчмаркинга и сравнения. А, понимаю, при этом не получается хвалить фетиш - становится понятно что это булшит :).


     
     
  • 5.64, arisu (ok), 00:45, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не вижу чем построение фракталов, сортировка или любой иной алгоритм так уж
    > плохи в целях бенчмаркинга и сравнения.

    в том, что это очень специфические задачи.

     
  • 5.67, Аноним (-), 08:14, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я не часто строю фракталы на руби, но когда я это делаю, я использую биндинги к OpenCL.
    Эти бенчмарки имели бы хоть какой-то смысл, если бы в них использовались не дженерики, а объекты, и были бы задачи, которые используют встроенные либы, например работа со строками, регекспы, и т.д. потому что в реале все упирается в создание объектов и GC. И, кстати заметьте, еще over 10y ago, на PHP строго на строго рекомендовалось не использовать ООП, так ВК до сих пор и не использует, в то время как на руби за такой СиСтайл влегкую можно получить по морде кирпичом. Разные подходы.
    И расскажите мне плиз, как они в этих бенчмарках умудрились получить такую странную правую колонку с распределением CPU по ядрам, если Ruby по определению однопоточный?
     
     
  • 6.69, AlexAT (ok), 09:11, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И, кстати заметьте, еще over 10y ago, на PHP строго на строго рекомендовалось не использовать ООП

    В PHP4 были большие проблемы с ООП в связи с костыльностью транслятора. Начиная с PHP5 с ООП никаких проблем нет, производительность не хуже процедурного варианта. К 5.3 вылизали чуть ли не до идеального варианта. Немножко не хватает шаблонов, как в сях, увы, и возможности перегрузки методов и функций.

     
     
  • 7.71, sometest (?), 10:30, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >шаблонов, как в сях

    Ты наверное имел в виду темплейты из крестов? Упаси б-же.

     
     
  • 8.77, Аноним (-), 20:40, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Темплейты из крестов, на мой взгляд, 8212 полумера Не видел кода но слышал ... текст свёрнут, показать
     
     
  • 9.78, sometest (?), 01:15, 10/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    да, анонимные функции появились в 5 3 насчет reflection не понял, если ты имел в... текст свёрнут, показать
     
  • 9.85, AlexAT (ok), 21:50, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Миксины сделали в 5 4 виде traits, по сути с другого боку, но всё оно же Рефлек... текст свёрнут, показать
     
     
  • 10.88, arisu (ok), 23:34, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    даже не знаю, то ли смеяться, то ли обнять и плакать 8230 ... текст свёрнут, показать
     

  • 1.55, Аноним (-), 22:12, 08/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скорее бы в стабильный релиз новый интерпретатор попал. Вот это было бы реально круто. Как не крути, а PHP - самый популярный ЯП для бекэнда.
     
     
  • 2.56, AlexAT (ok), 22:13, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Скорее бы в стабильный релиз новый интерпретатор попал. Вот это было бы
    > реально круто. Как не крути, а PHP - самый популярный ЯП
    > для бекэнда.

    Он еще и реально удобный. Как по синтаксису (C-подобен), так и по возможностям. Причём для бэкенда не обязательно вёбного. Главное - не перебарщивать с кодом, максимум встроенных функций, минимум велосипедов.

     
     
  • 3.57, arisu (ok), 22:18, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    а я продолжу спрашивать, какое логичное там применение для сигилов.
     
     
  • 4.59, AlexAT (ok), 22:40, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а я продолжу спрашивать, какое логичное там применение для сигилов.

    1) variadic variables/functions/methods - наверное, основное и единственное применение: $myObject->$varMethod($params), к примеру
    2) явное наследие перла
    3) всё-таки с баксом перед переменными код на самом деле слегка читабельнее

     
     
  • 5.60, arisu (ok), 22:46, 08/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 1) variadic variables/functions/methods - наверное, основное и единственное применение:
    > $myObject->$varMethod($params), к примеру

    и никто не применяет. да и сигил в php — не совсем обычный оператор, в отличие от sh, например, где это именно оператор.

    > 2) явное наследие перла

    где сигилов много, и они таки имеют смысл.

    > 3) всё-таки с баксом перед переменными код на самом деле слегка читабельнее

    ну да: пишешь — и сразу баксы видишь. ;-)

    проще говоря: сигилы в php — это карго-культ в основном.

     
     
  • 6.86, AlexAT (ok), 21:55, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > и никто не применяет. да и сигил в php — не совсем обычный оператор

    Я бы сказал - совсем не оператор, а именно variable prefix. Что же до юза:
    $instance = new $class();
    - весьма типовая и применительная конструкция, инстанциация объекта заранее не известного (определяемого на этапе выполнения) класса.

     
     
  • 7.87, arisu (ok), 23:32, 28/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Я бы сказал - совсем не оператор, а именно variable prefix.

    «consistency? не, не слышали! чо? хреново скопировали sh, не понимая, как там что работает? да пошёл ты!»

     

  • 1.66, Аноним (-), 00:50, 09/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что насчет standalone приложений. Уже можно наконец-то будет потоки или сопля к апачу?
     
     
  • 2.70, AlexAT (ok), 09:15, 09/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Что насчет standalone приложений. Уже можно наконец-то будет потоки или сопля к
    > апачу?

    Пока все внешние библиотеки не превратятся в thread safe - не будет. Потоки номинально есть, но требуют сборки с ZTS, и грозят костылями.

     

  • 1.68, Аноним (-), 09:03, 09/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Новые «standrd restrictions»?
     
  • 1.84, Аноним (-), 19:57, 28/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    JIT в PHP бы не помешал, а то Node.js + JavaScript понемногу начинают вытеснять PHP.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру