The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от opennews (??) on 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


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

3. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 21-Июн-13, 21:47 
Любую задачу можно написать на любом языке, вопрос всего лишь программных оберток
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +2 +/
Сообщение от freehck email(ok) on 21-Июн-13, 22:15 
Какие Вы выводы делаете, однако, при том даже, что ОСИ НЕ ПОДПИСАНЫ!
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

9. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 21-Июн-13, 23:17 
А для JavaScript есть чтото похожее, хочу игрушку запилить? Fps
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

13. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 22-Июн-13, 03:47 
Двиг с нуля придётся делать.
asm.js не совсем то.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

24. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от GG (ok) on 22-Июн-13, 21:36 
На хабре один пацанчик на JS написал первокваку. Работает хорошо. Двигло свободное, бери да перепиливай под себя.
http://habrahabr.ru/post/177159/
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

28. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 22-Июн-13, 23:11 
Очень плохая идея, могут наехать, очевидное нарушение патентов, а может и копирайтов.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

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

Нет

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

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

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

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

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

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

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

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

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

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

36. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +1 +/
Сообщение от dennis_p on 23-Июн-13, 15:11 
ну так бы и сказал, что у тебя принципиально новый движок
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

42. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от ОНО on 25-Июн-13, 13:19 
ну так напиши.
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

2. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  –2 +/
Сообщение от GentooBoy (ok) on 21-Июн-13, 21:44 
Я понимают пхп аноним, не шарит, но моделаторы то.
Хотя бы графики уберите с холерными данными.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +4 +/
Сообщение от Georges (ok) on 21-Июн-13, 22:04 
Битрикс им можно скомпилировать? Вот кто особые требования по производительности предъявляет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +1 +/
Сообщение от Аноним (??) on 22-Июн-13, 00:53 
Это была рекламная пауза.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +1 +/
Сообщение от lucentcode (ok) on 22-Июн-13, 02:57 
Интересно, а насколько совместим сабж с Zend PHP? Будет ли работать на нём тот-же Drupal?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от kamiram on 22-Июн-13, 10:50 
фигово совместим.
нет, например, словарей.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 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).

Петросяны

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

lea? :-)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 22-Июн-13, 17:03 
mla
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

18. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Anonymouz on 22-Июн-13, 16:59 
Даёшь больше костылей, хороших и разных!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от edwin3d email on 22-Июн-13, 18:41 
Забавно ... сперва мы создаем интерпретатор да еще с динамической типизацией, потом набираем шишки ... а потом пританцовываем к той-же печке: Бинарные сборки, компиляция и т.д. ....
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от pro100master (ok) on 22-Июн-13, 19:34 
Сначала мы изобрели молоток, а потом уже гвозди. И чо?)
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Аноним (??) on 22-Июн-13, 20:04 
пальцы уже отбиты, вот чё))
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от AlexAT (ok) on 22-Июн-13, 20:48 
Нет, производительность, конечно, хороша. Но блин то, как это на соплях и скотче примотано - вызывает только "oh, shi...". PHPDoc, какая-то невменяемая типизация...
Короче, я лучше поюзаю HHVM там, где нужно, и подожду JIT в движке PHP, чем связываться с этим.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от XoRe (ok) on 22-Июн-13, 23:01 
Интересная штука, если вы готовы переписывать оптимизируемые функции.
Хотя не проще тогда сразу на компилируемом языке писать критические вещи?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

33. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Булочка on 23-Июн-13, 00:07 
Это как Phalcon в PHP, но для особо тонких ценителей?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

34. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от Crazy Alex (??) on 23-Июн-13, 13:45 
Так, глядишь, наконец плавненько уйдем от нетипизированных языков..
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

37. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от balex (??) on 23-Июн-13, 16:07 
Разве что вполне себе. Слишком опрометчиво для строго типизированного enum от int не отличать.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

38. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от pro100master (ok) on 23-Июн-13, 19:54 
с какого субботнего похмелья он enum от int не отличает? Ну-ка, определение enuma озвучьте?)
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

39. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 23-Июн-13, 23:20 
ты эта... не относишься к тем самым, которые считают c/c++ одним языком?
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

40. "Новая версия PHP QB 1.3, позволяющего существенно увеличить ..."  –1 +/
Сообщение от Аноним (??) on 24-Июн-13, 09:42 
QB это Куиск Басек?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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