Мигель де Икаса (Miguel De Icaza) рассказал (http://tirania.org/blog/archive/2012/Mar-05.html) об успехах проекта Phalanger (http://www.php-compiler.net), развивающего открытую реализацию PHP-компилятора и runtime-компонентов PHP для платформы Mono/.NET. Обладая неплохой совместимостью с существующим кодом на PHP (например, поддерживается выполнение phpBB, WordPress и MediaWiki), Phalanger обладает рядом особенностей, таких как более высокая производительность, возможность бесшовной интеграции с .NET, верификация кода на этапе компиляции, расширенные отладочные инструменты. Phalanger не выполняет PHP код, а компилирует его в байткод для виртуальной машины .NET, который затем благодаря использованию JIT-компиляции частично преобразуется на лету в машинные инструкции.Опубликованные проектом новые результаты (http://www.php-compiler.net/benchmarks) тестирования производительности мартовского выпуска (http://www.php-compiler.net/blog/2012/phalanger-march-2012) Phalanger прод...
URL: http://tirania.org/blog/archive/2012/Mar-05.html
Новость: http://www.opennet.me/opennews/art.shtml?num=33273
не самая радостная новость в том плане, что пыха явно имеет запас по оптимизации, а злобное моно его выполняет лучше.
Кста, кто не в курсе. МС давно перевело всех на ВП крутящийся на их ИИСе, А чтоб тот нормально выполнялся хорошенько попилили пыху у себя. Вот одно из проявлений.Даёшь оптимизации в эталонных реализациях!!
Компиляция != Интерпретация? Не, не слышали
И то верно. Мож тогда подумаем, как предкомпелированние прикрутить как метод оптимизации?
> И то верно. Мож тогда подумаем, как предкомпелированние прикрутить как метод оптимизации?Хм... а знаете, давно уже придумали кешировать все что возможно в статику. Тогда не надо ничего ни компилировать ни интерпретировать. Какойнить нжинкс при этом отгрузит мегатонны страничек нисколько не обламываясь :)
>> И то верно. Мож тогда подумаем, как предкомпелированние прикрутить как метод оптимизации?
> Хм... а знаете, давно уже придумали кешировать все что возможно в статику.
> Тогда не надо ничего ни компилировать ни интерпретировать. Какойнить нжинкс при
> этом отгрузит мегатонны страничек нисколько не обламываясь :)Кеширование != предкомпелирование. А значит можно при желании задействовать как метод оптимизации и то и другое.
Если бы весь контент был статичен - то на голом html-е сидели-бы.
> Кеширование != предкомпелирование.Отлично, однако лично мне совершенно не понятно, зачем приматывать ко всему этому скотчем и изолентой моно-дотнеты.
А насчет предкомпиляции - извините, кеши длч пыха хранящие предкомпилированные варианты скриатов - как бы есть. Почему мигель постеснялся с ними посоревноваться - не знаю, наверное потому что теплое с мягким сравнивать удобнее.
>И то верно. Мож тогда подумаем, как предкомпелированние прикрутить как метод оптимизации?llvm PHP?
> не самая радостная новость в том плане, что пыха явно имеет запас
> по оптимизации, а злобное шмоно его выполняет лучше.
> Кста, кто не в курсе. МС давно перевело всех на ВП крутящийся
> на их ИИСе, А чтоб тот нормально выполнялся хорошенько попилили пыху
> у себя. Вот одно из проявлений.что-что они попилили? Если я не ошибаюсь они пыхпых как CGI не запускают, так что к самому пыхпыху они никакого отношения не имеют да их никто не подпустит к этому делу.
CGI запускают*
молодцы!
моно - нужно!
> моно - нужно!...мигелю. А вот зачем остальным играть в догонялки с MS и реализовывать у себя в ос поддержку MZ EXE рассказывающих что this program can't be run in dos mode (wtf is it?) - это конечно здорово, но зачем?! И что такое dos mode на моем MIPSовском роутере например? :)
> моно - нужно!Кому и зачем?
Мне, Smath Studio запускать.
> Мне, Smath Studio запускать.А я даже не знаю что это такое. Поэтому в моей системе моно нет и я рад этому факту. В свое время пробовал запустить вьюшку фотографий на этом. Задолбался ждать пока она запустится!
Да? И скажи мне зачем нужен этот моно если можно компилировать сразу "родной" для платформы бинарник, который уж точно быстрее убежит чем абстрактный байткод. Если ты мне щас петь будешь про переносимость между платформами - то я в качестве контрпримера отгружу софт который написан на С/С++ и работает на разных платформах.Так, нахрена нужен этот моно?
> Так, нахрена нужен этот моно?У Мигеля на нём бизнес.
один бинарник на C++ будет работать и на linux x86 и на win x64 и на arm-linux? ORLY?
Сам придумал чушь, сам над ней посмеялся. Автономность!
> один бинарник на C++ будет работать и на linux x86 и на
> win x64 и на arm-linux? ORLY?Легко. Один бинарник ядра от Фабриса Белларда легко запускаеся на любой платформе с более-менее современным браузером. Хинт: C(++) в принципе может генерить как код и некий код абстрактной VM вместо нативного, это ничему такому не противоречит.
>> один бинарник на C++ будет работать и на linux x86 и на
>> win x64 и на arm-linux? ORLY?
> Легко. Один бинарник ядра от Фабриса Белларда легко запускаеся на любой платформе
> с более-менее современным браузером. Хинт: C(++) в принципе может генерить как
> код и некий код абстрактной VM вместо нативного, это ничему такому
> не противоречит.Маленькое уточнение - его бинарник исполняется в виртуальной машине, реализующей IIRC куцый x86.
.net - таки не эмулирует целую архитектуру.
бинарники - это машинный код, скомпилированный под определённую платформу, бинарник под x86 не будет работать под arm
> бинарники - это машинный код, скомпилированный под определённую платформу, бинарник под
> x86 не будет работать под armточно? а у qemu другое мнение, например.
Давай, отгрузи мне С/С++ бинарников которые без перекомпиляции будут работать на разных платформах.
> Давай, отгрузи мне С/С++ бинарников которые без перекомпиляции будут работать на разных платформах.Да запросто - вон например у гражданина Фабриса Белларда линух грузится в браузере, загружая по сети ядро и прочие бинарники, там же можно не отходя от кассы скомпилить прогу на си. Ну в общем как вы и заказывали, да. Ну а собственно сям пофигу под что именно код генерить. Если целевой платформой будет LLVM байткод -> JS, ну значит вот так вот, да. А почему нет? Никаким законом не запрещено сгенерить код под абстрактную VM и как-либо транслировать оный ;)
Или у мозильщиков работал порт дума по сети. Ну разумеется он на сях как был написан так и остался ;)
давай покажи хоть одну прогу на дотнете которая работает и на линуксе и на виндовсе.
(только реальную прогу, а не калькулятор, и не paint.net, к-ый портировали под линукс, смешно, да??? дотнет такой дотнет, к-ый портировать надо)
> давай покажи хоть одну прогу на дотнете которая работает и на линуксе и на виндовсе.Ага, и тут то мы и понимаем что на винде нет никаких GTK# а в линуксе... винформсы во первых устарели, во вторых на их счет по поводу патентов MS ничего не обещал, в третьих кривовато. А WPF вообще вроде люто недопилен. Получается офигенная кроссплатформенность, так что даже единой между платформами системы виджетов нет.
>Давай, отгрузи мне С/С++ бинарников которые без перекомпиляции будут работать на разных платформах.Об этом и речь. Нахрена быдлопотребителю брать бинарь под другую платформу если он может потреблять готовы бинарь который собран под его платформу. Более того, учитыая что в нормальных ОС есть репозитории как с бинарными пакетами так и с исходными кодами - потребности в моно вообще нет. Вы бы еще гентушникам объяснили что мол вот соберите моно потом собирайте софт которы под моно... Маразм же, ну!
Вывод: ни моно ни .Net не нужны (дя parrot, кстати, еще можно найти узкие области для использования).
> Давай, отгрузи мне С/С++ бинарников которые без перекомпиляции будут работать на разных
> платформах.Все бинарники - в репозитории, бережно собранные и оптимизированные под твою платформу. Или ты о том что проприетарное гoвнецо неудобно распространять? Так и хорошо что неудобно.
> если можно компилировать сразу "родной" для платформы бинарникога ога
HipHop так и работает, только размер бинарника где-то с гектар
Мне одному кажется, что подобное надо сравнивать не с оригинальным PHP а, к примеру, с HipHop? Здесь же явно не все конструкции поддерживаются.
"Phalanger's performance is impressive as it is just as fast as the newly announced Facebook HipHop VM for PHP.
The major difference being that Phalanger is a complete PHP implementation and the HipHopVM is still not a complete implementation."
Miguel de Icaza
> Miguel de IcazaНу да, а кто-то видел программистов РУГАЮЩИХ свои поделки? Свое как известно не пахнет ;)
s/x64/x86_64/
Mono оказывается защищается патентами от OIN
> Mono оказывается защищается патентами от OINХотите померяться с юридической службой MS у кого длиннее? Вон производители андроида зассали наполовину, в основном за счет шансов что будет хана их ноутбучному бизнесу.
>> Mono оказывается защищается патентами от OIN
> Хотите померяться с юридической службой MS у кого длиннее? Вон производители андроида
> зассали наполовину, в основном за счет шансов что будет хана их
> ноутбучному бизнесу.Разве их пугали моной? Нет.
> Разве их пугали моной? Нет.Правильно. Пугают тех с кого можно что-то состричь. А с мигеля пока можно состричь разве что его портки. А так неинтересно. Вот если все влопаются, тогда... не ну уж не думаете ли вы что делая свою замену явы MS не зарегал патентов на все что в голову пришло? Как минимум для вооруженного до зубов паритета с санями.
Запилили лучше бы на llvm
Дык это...
1) Там есть фатальный недостаток. Его знает каждый программист!
2) Там нет дотнета^W моно! Это тоже фатальный недостаток! (майкрософт бабла не выделит)
Компилятор обогнал интерпретатор, поразительно.
Все этот мигель со своим моно никак не угомонится. Не хотелось бы его расстраивать но я думаю что долбстись с кастрированной и глючной недо-реализацией дотнета на сервере желающих будет мало.Кому не нyжна скорость - долботня с моно тем более не вперлась. Кому нужна - погодите, что за фигня - WinCache? Я такой даже не знаю. Пусть вон кеш в статику нжинкса побьет или хотя-бы какие-то общеизвестные php-кеши используемые на реальных боевых серверах. А лучше пусть hiphop сразу уделывает. А то как обычно, выбрали для бенча своего велика самый удобный вариант. С хорошей горки и запорожец 200 сделает, кто бы сомневался.
а в это время m$ отказывается от .net в своей новой версии оси
Не совсем понятно:
1. какой веб сервер ?
2. скоко это жрет рама ?
откуда дровишки?
знакомый программер недоумевал"в предстоящем релизе Windows 8 Microsoft планирует сместить акценты в области средств разработки. Жертвами станут .NET и Silverlight. Нет, они конечно останутся, для обратной совместимости и других полезных дел, но, как сказал представитель Microsoft, "не следует ожидать что их footprint будет расти"
http://h30565.www3.hp.com/t5/Mobility-Matters/Windows-8-It-s...
> знакомый программер недоумевал
> "в предстоящем релизе Windows 8 Microsoft планирует сместить акценты в области средств
> разработки. Жертвами станут .NET и Silverlight. Нет, они конечно останутся, для
> обратной совместимости и других полезных дел, но, как сказал представитель Microsoft,
> "не следует ожидать что их footprint будет расти"
> http://h30565.www3.hp.com/t5/Mobility-Matters/Windows-8-It-s...Саму новость читали? Речь-то про планшетники/телефоны.
Вот именно.Зыж
Хм. А я то думал что уже все понимают, что будущее за фрэймворками, для которых такое деление будет не актуальным.
Вон как гном3 колбасит.
> "не следует ожидать что их footprint будет расти"MS решило что HMTL5 во все поля. Так что дотнет задвинут. Но мигелюшка никак не может отпустить ручник...
> HMTL5 во все полякак обычно, во все кроме IE?
И это после компиляции он так слабо обгоняет интертрепатор?
Как был .NET тормозом, так и остался. А php5.4 с кэшированием показать побоялись?
А взять нормальный кешер, а не виндовую поделку?
> И это после компиляции он так слабо обгоняет интертрепатор?
> Как был .NET тормозом, так и остался. А php5.4 с кэшированием показать
> побоялись?
> А взять нормальный кешер, а не виндовую поделку?Дак и к моно кеширование не подвязывали.
>> А взять нормальный кешер, а не виндовую поделку?
> Дак и к моно кеширование не подвязывали.Даже не знаю, кто пускает в деле php без opcode cache (коих несколько разных, свободные в основном растут от mmcache IIRC) -- разница в производительности порядка 3..10 раз.
PS: выкинул лишнее.
Туфта это, а не тесты. Нет информации как работает PHP (через CGI/FastCGI/ServerAPI), не указаны настройки web-сервера (например Apache prefork и Apache worker - это две большие разницы), не указано использует ли PHP какой-нибудь акселератор (eAccelerator/APC и т. п.), наличие которого меняет производительность на порядок.
Намекну — тесты проаодились на винде.
Без апачей.
- один хрен, что с акселератором, как подключали к web-серверу (к IIS PHP тоже можно подключить по разному)? Мутный тест.
> Намекну — тесты проаодились на винде.Там вообще дотнет есть. Или мигелюшка настолько потерял веру в возможность допилить свою поделку до ума что тестирует теперь под виндой? :)
> под виндой? :)мигелюшка наконец решился на coming out.
Открытая реализация полузакрытого языка программирования на открытой реализации закрытой платформы? OSS make a lot of sense!
Quercus is Caucho Technology's 100% Java implementation of PHP 5 released under the Open Source GPL license. Quercus comes with many PHP modules and extensions like PDF, PDO, MySQL, and JSON. Quercus allows for tight integration of Java services with PHP scripts, so using PHP with JMS or Grails is a quick and painless endeavor. http://quercus.caucho.com/
Теперь тоже самое нужно протестировать:
а. под линухой
б. с использование XCache, APC, eAccelerator
в. с mod_php, fast-cgi, mpm-itk
ну как бы: дефолтный вордпресс, BSD 8.2 (своя сборка ядра), nginx, php-fpm+php5.3.8, apc + тюнинг mysql - главная страница вордпресса через ab в 50 потоков - стабильно выше 500 rps. Кому бы продать )))
> Кому бы продать )))C *bsd? Собственной сборкой ядра? Махохистам. Правда их в природе мало.
Вы как и слоник в домене юзаете в продакшене ядра с дебугом? :-))) Сурово...