URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 90537
[ Назад ]

Исходное сообщение
"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."

Отправлено opennews , 21-Июн-13 21:41 
Вышла (http://www.php-qb.net/index.php/2-uncategorised/18-version-1...) новая версия расширения PHP QB 1.3 (http://www.php-qb.net), предоставляющего (https://github.com/chung-leong/qb/wiki/Introduction) средства для написания требовательных к производительности приложений на языке PHP.


В то время как PHP является отличным языком для создания сложных веб приложении, он имеет несколько определённых ограничений. Написание кода который выполняет низкоуровневые, интенсивные по вычислениям задачи, в основном не практично - он просто будет слишком медленен. Расширение QB направлено на устранение этой слабости PHP. Транслируя Zend опкод и исполняя его с помощью статически типизированной виртуальной машины или преобразуя его в нативный исполняемый код, QB обеспечивает колоссальный прирост производительности (от 5 до 20 раз). Добавленная мощность позволяет программистам на языке PHP делать вещи которые они не могли сделать ранее, такие как сложные операции с видео и изображениями на уровне пикселей.


В QB программа может быть скомпилирована как в родной для платформы код, так и в байткод для исполнения в виртуальной машине. Код, использующий QB, можно как вызывать из классов, написанных для Zend PHP. Трансляция выполняется на уровне отдельных функций и  затрагивает только специальным образом помеченный код. Взаимодействие кода PHP QB и кода PHP осуществляется бесшовно - после компиляции функции на PHP QB становятся видимы из PHP-приложения как обычные функции. Таким образом с использованием PHP QB могут выполняться только критичные к производительности участки кода, а остальной код может быть оставлен нетронутым.


Особенностью расширения PHP QB является то, что оно использует сведения указанные в блоках PHPDoc для получения информации о типах данных. Хотя PHP QB в основном совместим с Zend PHP, он имеет несколько отличий которые позволяют его считать отдельным языком. Например массивы являются просто блоками памяти в PHP QB, в нём нет ассоциативных массивов, в силу этого действия операторов также во многом отличаются (https://github.com/chung-leong/qb/wiki/Differences-Between-P...) от эталонной реализации Zend PHP. Большинство операторов в PHP QB поддерживают на входе как скалярные данных так и массивы. Таким образом реализуется принцип "одна инструкция, много данных". Например  результатом $b = array(1, 2, 3, 4);  $b += 10; будет [11, 12, 13, 14]. В PHP QB нет типа строка, это просто массив uint8.

Основными нововведениями в версии  PHP QB 1.3 являются улучшение производительности компилированного кода и сокращение использование памяти при компиляции.  Некоторые изменения:


-  Для преобразований float-в-int, когда это возможно, используется инструкции SSE.
-  Добавлена функция blend (https://github.com/chung-leong/qb/wiki/blend).
-  Добавлена инструкция умножить-аккумулировать. $d = $c + ($a * $b) сейчас производится в одну инструкцию, с по существу бесплатной операцией сложения.
-  Импортированные ядра Adobe Pixel Bender сейчас работают с предумноженным альфа-каналом так как они должны.
-  Добавлена поддержка Mac OS X Mountain Lion.


<center><a href="http://www.php-qb.net/images/fannkuch-chart.png"><... src="http://www.opennet.me/opennews/pics_base/0_1371835414.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>


На графике показана производительность PHP QB (http://www.php-qb.net/index.php/2-uncategorised/3-on-perform...) в тесте fannkuch-redux из Computer Language Benchmark Game (http://benchmarksgame.alioth.debian.org). (1) Zend PHP, (2) PHP+QB в режиме интерпретации и (3) в режиме компиляции (с использованием gcc).

<center><a href="http://www.php-qb.net/images/crc32-chart.png"><img src="http://www.opennet.me/opennews/pics_base/0_1371835395.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>


На графике показана производительность PHP QB при рассчёте контрольной суммы CRC-32 для данных размером в 10мб.

URL: http://www.php-qb.net/index.php/2-uncategorised/18-version-1...
Новость: http://www.opennet.me/opennews/art.shtml?num=37244


Содержание

Сообщения в этом обсуждении
"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 21-Июн-13 21:41 
PHP+QB (compiled) практически догоняет Native код по производительности?
Современные игрушки можно писать на PHP?

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 21-Июн-13 21:47 
Любую задачу можно написать на любом языке, вопрос всего лишь программных оберток

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 21-Июн-13 21:51 
> Современные игрушки можно писать на PHP?

для админов. обычным людям на серверах игры ни к чему.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено freehck , 21-Июн-13 22:15 
Какие Вы выводы делаете, однако, при том даже, что ОСИ НЕ ПОДПИСАНЫ!

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 21-Июн-13 23:17 
А для JavaScript есть чтото похожее, хочу игрушку запилить? Fps

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено rhamdeew , 21-Июн-13 23:59 
Для JS запилили asm.js недавно вроде, да и игровых движков на нем есть небольшая кучка

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 03:47 
Двиг с нуля придётся делать.
asm.js не совсем то.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено GG , 22-Июн-13 21:36 
На хабре один пацанчик на JS написал первокваку. Работает хорошо. Двигло свободное, бери да перепиливай под себя.
http://habrahabr.ru/post/177159/

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 23:11 
Очень плохая идея, могут наехать, очевидное нарушение патентов, а может и копирайтов.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено GG , 22-Июн-13 23:44 
> Очень плохая идея, могут наехать, очевидное нарушение патентов, а может и копирайтов.

Нет


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 23:51 
Ребята из Mozilla однажды несколько лет назад, запилили целый Doom 1 или Doom 2, точно не помню, на Java вроде.

Так весь их труд очень быстро похерили.
Новость про них была на опеннете, а по ссылке, написано про нарушение копирайтов или нечто похожее. Можешь найти, если интересно.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 23:40 
WebQuake — это двиг для конкретной старой игрушки — Quake 1, мне то он зачем сдался?

Если я хочу делать новый качественный продукт, зачем мне сверхустаревший движок со старыми принципами и ошибочными решениями для какой-то игры каменного века?

Я что, должен подстраиваться и всю игрушку писать под этот шизофреничный движок? В ущерб своей психике, нервам, графике, геймплею и FPS? Это что за ересь?

Вы меня не так поняли кажется, я вовсе не собирался делать игру похожую на Quake 1.

Сейчас всё по другому можно сделать, гораздо экономнее и fps больше выйдет.

Разумеется переписывать готовый движок на другом языке гораздо легче и быстрее, особенно если программы трансляторы задействовать.

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

Без всяких глупостей и шизофрений, которые были актуальны или нужны 17 лет назад.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено dennis_p , 23-Июн-13 15:11 
ну так бы и сказал, что у тебя принципиально новый движок

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено ОНО , 25-Июн-13 13:19 
ну так напиши.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено GentooBoy , 21-Июн-13 21:44 
Я понимают пхп аноним, не шарит, но моделаторы то.
Хотя бы графики уберите с холерными данными.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Georges , 21-Июн-13 22:04 
Битрикс им можно скомпилировать? Вот кто особые требования по производительности предъявляет.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено GG , 22-Июн-13 21:37 
> Битрикс им можно скомпилировать? Вот кто особые требования по производительности предъявляет.

Битрикс писался с учётом особенностей MS SQL, потому и тормозит на всём остальном (да и на нём тоже), пыха тут не поможет.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено XoRe , 22-Июн-13 22:59 
> Битрикс им можно скомпилировать? Вот кто особые требования по производительности предъявляет.

Код битрикса править все равно придется.
Это больше похоже на ассемблерные вставки в исходнике на С/С++.
Если хотите оптимизировать функцию, нужно четко указать типы входных данных.
И если функция работает со строками, надо ещё посмотреть, будет ли профит.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено all_glory_to_the_hypnotoad , 21-Июн-13 22:12 
> В то время как PHP является отличным языком для создания сложных веб приложении

нельзя же так неаккуратно делить на ноль


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 00:53 
Это была рекламная пауза.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено lucentcode , 22-Июн-13 02:57 
Интересно, а насколько совместим сабж с Zend PHP? Будет ли работать на нём тот-же Drupal?

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено kamiram , 22-Июн-13 10:50 
фигово совместим.
нет, например, словарей.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 09:27 
>> Memory usage during compilation was significantly reduced. QB can now be compiled comfortably on system with 2 gig of physical RAM (provided some swap space is available).

Петросяны


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено ip1981 , 22-Июн-13 13:48 
> обавлена инструкция умножить-аккумулировать. $d = $c + ($a * $b) сейчас производится в одну инструкцию, с по существу бесплатной операцией сложения.

lea? :-)


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 17:03 
mla

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Anonymouz , 22-Июн-13 16:59 
Даёшь больше костылей, хороших и разных!

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 24-Июн-13 09:43 
> Даёшь больше костылей, хороших и разных!

Смолистых-деревянных, оне горятъ лутчее.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено edwin3d , 22-Июн-13 18:41 
Забавно ... сперва мы создаем интерпретатор да еще с динамической типизацией, потом набираем шишки ... а потом пританцовываем к той-же печке: Бинарные сборки, компиляция и т.д. ....

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено pro100master , 22-Июн-13 19:34 
Сначала мы изобрели молоток, а потом уже гвозди. И чо?)

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 22-Июн-13 20:04 
пальцы уже отбиты, вот чё))

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено AlexAT , 22-Июн-13 20:48 
Нет, производительность, конечно, хороша. Но блин то, как это на соплях и скотче примотано - вызывает только "oh, shi...". PHPDoc, какая-то невменяемая типизация...
Короче, я лучше поюзаю HHVM там, где нужно, и подожду JIT в движке PHP, чем связываться с этим.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено XoRe , 22-Июн-13 23:01 
Интересная штука, если вы готовы переписывать оптимизируемые функции.
Хотя не проще тогда сразу на компилируемом языке писать критические вещи?

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Булочка , 23-Июн-13 00:07 
Это как Phalcon в PHP, но для особо тонких ценителей?

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Crazy Alex , 23-Июн-13 13:45 
Так, глядишь, наконец плавненько уйдем от нетипизированных языков..

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено AlexAT , 23-Июн-13 14:01 
> Так, глядишь, наконец плавненько уйдем от нетипизированных языков..

Куда уходить-то? Для этого уже давным давно есть C - вполне себе строго типизированный универсальный язык.


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено balex , 23-Июн-13 16:07 
Разве что вполне себе. Слишком опрометчиво для строго типизированного enum от int не отличать.

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено pro100master , 23-Июн-13 19:54 
с какого субботнего похмелья он enum от int не отличает? Ну-ка, определение enuma озвучьте?)

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено all_glory_to_the_hypnotoad , 23-Июн-13 23:20 
ты эта... не относишься к тем самым, которые считают c/c++ одним языком?

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено pro100master , 25-Июн-13 23:40 
> ты эта... не относишься к тем самым, которые считают c/c++ одним языком?

из чего следует столь нелепое предположение?


"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Отправлено Аноним , 24-Июн-13 09:42 
QB это Куиск Басек?