Как стать автором
Обновить

Комментарии 9

передача параметров по ссылке

На сколько я знаю есть пара проблем с этой фичей. Для начала совершенно тупой (на мой субъективный взгляд) парсер, который создавался для SQL кода, а никак не сложных вложенных и даже рекурсивных конструкций, требующихся для языка (привет elseif, list). Эту проблему я пробовал решить хаком, позволив переменным начинаться с & и резолвить это в php. Но уперся в другую проблему — я не знаком с ядром PHP на столько хорошо, если кто-то подскажет, как правильно внутри Си передать переменную по ссылке, я доделаю эту фичу)
замыкания

А зачем это нужно вообще, кроме цельности языка? Вы можете написать функцию и передать ее, как [this, 'funcName']. Я не думаю, что в ядре есть поддержка замыканий, поэтому зефир ее вряд ли как-то реализует, кроме как подобных хаков.
Да, можно прожить без замыканий. По передаче параметра по ссылке есть таск github.com/phalcon/zephir/issues/203, в нем я вижу ряд коммитов, возможно, направят в нужное русло.
Прошу прощения, не сразу заметил, что это твои коммиты)
Так понимаю на С готовых реализаций в виде extension не было? Сравнить не с чем?
Прогоните свой код еще и через HHVM. На моей машине выходит где-то 5-ти кратный прирост производительности.
НЛО прилетело и опубликовало эту надпись здесь
Я только про бенчмарк автора статьи, только библиотека. Мне просто показалось несколько грустным такое незначительное увеличение производительности с имплементацией на зефирке, когда можно вообще ничего не делать и получить больший прирост.

Что до симфони проекта на hhvm, ускорение в среднем есть, скажем jmsserializer отрабатывает значительно быстрее, гидрации доктрины. памяти ест в разы меньше… Но полноценных бенчмарков я пока не делал, просто пробовал старые проекты на hhvm погонять. По тем тестам которые я находил ускорение порядка 10%-20% относительно php5.5+opcache. Но опять же, все зависит от приложения. Если убрать symfony/forms и doctrine/orm и оставить только doctrine/dbal, то будет очень даже шустренько все работать.
В текущей реализации в некоторых местах используются переменные PHP вместо статичных переменных из-за ряда текущих ограничений Zephir-а. Ощущение, что это может также изменить цифры по Зефиру. А так да, сам ожидал несколько других цифр.
Это как-то удобнее чем hstore_to_json -> json_decode?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории