Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «компилятор»

[Перевод] Обзор расширения OPCache для PHP 2016-09-15 14:37:05

< ...
+ развернуть текст сохранённая копия
PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.
Очень маловероятно, что на production-серверах PHP-код изменится между выполнением нескольких запросов. Так что можно считать, что при компилированиях всегда считывается один и тот же исходный код, а значит и опкод будет точно таким же. И если извлекать его для каждого скрипта, то получается бесполезная трата времени и ресурсов.
Читать дальше →
Тэги: group, mail.ru, opcache, php, блог, веб-сайтов, интерпретаторы, компании, компиляторы, покровов, разработка, срыв
[СПб, Анонс] Встреча CodeFreeze с разработчиком PHP Дмитрием Стоговым про внутреннее устройство виртуальной машины PHP 2016-09-02 17:03:27
... , разработчиком компилятора PHP, сотрудником ...
+ развернуть текст сохранённая копия
В среду, 7 сентября, в 20:00 в питерском офисе компании JetBrains состоится встреча с Дмитрием Стоговым, разработчиком компилятора PHP, сотрудником Zend Technologies. Тема встречи — внутреннее устройство виртуальной машины PHP и, в частности, последние изменения в PHP 7.
Участие, как всегда, бесплатное. Регистрация — по ссылке. Количество мест ограничено.
О докладе
Виртуальная машина PHP имеет различные внутренние изменения, однако самые интересные — поднимающие производительность от версии к версии. Именно о них расскажет Дмитрий, уделив внимание последним изменениям, реализованным в PHP 7 и принесшим двукратное улучшение, и новым идеям, реализуемым в ещё не выпущенных версиях.
Доклад будет интересен всем интересующимся разработкой интерпретируемых языков программирования. Читать дальше →
Тэги: backend, codefreeze, group, jug.ru, performance, php, php7, phpstorm, блог, виртуальная, компании, компиляторы, машина, митапы
64bit-арифметика в браузере и WebAssembly 2016-08-31 21:39:55
+ развернуть текст сохранённая копия
WebAssembly активно разрабатывается и уже достиг состояния, когда собранный модуль можно попробовать в Chrome Canary и Firefox Nightly, включив флажок в настройках.
Сравним производительность арифметических вычислений с 64-битными числами в WebAssembly, asm.js, PNaCl и native-коде. Посмотрим на инструменты, которые есть для WebAssembly сейчас, и заглянем в недалёкое будущее. Читать дальше →
Тэги: argon2, benchmark, javascript, llvm, pnacl, wasm, webassembly, браузеры, веб-сайтов, компиляторы, программирование, разработка
[Перевод] Массивы в РНР 7: хэш-таблицы 2016-08-22 19:17:55
Хэш-таблицы используются везде, в каждой серьёзной С-программе. По сути, они позволяют программисту ...
+ развернуть текст сохранённая копия
Хэш-таблицы используются везде, в каждой серьёзной С-программе. По сути, они позволяют программисту хранить значения в «массиве», индексируя его с помощью строк, в то время как в языке С допускаются только целочисленные ключи массива. В хэш-таблице строчные ключи сначала хэшируются, а затем уменьшаются до размеров таблицы. Здесь могут возникать коллизии, поэтому нужен алгоритм их разрешения. Существует несколько подобных алгоритмов, и в РНР используется стратегия связных списков (linked list).
В Сети есть немало замечательных статей, подробно освещающих устройство хэш-таблиц и их реализации. Начать можно с http://preshing.com/. Но имейте в виду, вариантов структуры хэш-таблиц — несметное множество, и ни один из них не совершенен, в каждом есть компромиссы, несмотря на оптимизацию циклов процессора, использования памяти или хорошее масштабирование потокового окружения (threaded environment). Одни варианты лучше при добавлении данных, другие — при поиске и т. д. Выбирайте реализацию в зависимости от того, что для вас важнее.
Хэш-таблицы в РНР 5 подробно рассмотрены в материале phpinternalsbook, который я написал вместе с Nikic, автором хорошей статьи про хэш-таблицы в РНР 7. Возможно, её вы тоже сочтёте интересной. Правда, она писалась до релиза, поэтому некоторые вещи в ней слегка отличаются.
Здесь же мы подробно рассмотрим, как устроены хэш-таблицы в РНР 7, как с ними можно работать с точки зрения языка С и как ими управлять средствами РНР (используя структуры, называемые массивами). Исходный код в основном доступен в zend_hash.c. Не забывайте, что хэш-таблицы мы используем везде (обычно в роли словарей), следовательно, нужно проектировать их так, чтобы они быстро обрабатывались процессором и потребляли мало памяти. Эти структуры решающе влияют на общую производительность РНР, поскольку местные массивы не единственное место, где используются хэш-таблицы.
Читать дальше →
Тэги: group, mail.ru, php, web-разработка, блог, веб-сайтов, интерпретаторы, компании, компиляторы, покровов, разработка, срыв
[Перевод] Инкремент в PHP 2016-07-20 18:06:17

< ...
+ развернуть текст сохранённая копия
Возьмите переменную и увеличьте её на 1. Звучит просто, верно? Ну… С точки зрения PHP-разработчика, наверное, да. Но так ли это на самом деле? Здесь могут возникнуть некоторые трудности. Существует несколько способов инкрементировать значения, они могут выглядеть равноценными, но под капотом PHP работают по-разному, что может привести к, так сказать, интересным результатам.
Читать дальше →
Тэги: group, mail.ru, php, блог, веб-сайтов, компании, компиляторы, покровов, разработка, срыв, теги, читает
Главная / Главные темы / Тэг «компилятор»
|
Взлеты Топ 5
Падения Топ 5
|