Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ? / 11 сообщений из 11, страница 1 из 1
06.03.2016, 12:02
    #39186817
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
Сделал универсальную функцию, где в шаблоне указываю {VAR VALUE='$ЧтоХочуТоИПолучаю[ДажеТак]'}... О чудо, какой я гений, обрадовался, теперь могу что захочу и где захочу выводить любые значения делая правку только в шаблоне. Но использовав только 5 переменных сайт начал заметно на пол секунды больше задерживать выдачу. Время не измерял, отключил все что придумал, а спустя неделю решил спросить на форуме все таки Eval замедляет процесс исполнения кода ?
...
Рейтинг: 0 / 0
06.03.2016, 16:28
    #39186920
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
Андрей159,

Баян, но повторю...

Evil... ой, простите... eval следует использовать только в крайних случаях. И не потому, что она медленнее в силу повторного парсинга строк (вообще не должно наблюдаться сильное замедление), а в силу понижения уровня безопасности (ведь умелые руки могут прокинуть в неё запрещённый вызов).

P.S. Замечу, что лично у меня, таких "крайних случаев" не было уже на протяжении последних лет двух наверное :) А если таковые появятся, то я скорее задумаю о правильности подхода, чем о том, как бы туда правильно всунуть eval.
...
Рейтинг: 0 / 0
07.03.2016, 09:50
    #39187083
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
ПрограмёрEvil... ой, простите... eval следует использовать только в крайних случаях.
P.S. Замечу, что лично у меня, таких "крайних случаев" не было уже на протяжении последних лет двух наверное :)
Вы так то в курсе, что в php шаблонизаторы обычно через eval и работают ? или компилируют, но потом снова eval. Ну или еще через какую-то иную форму вызова интерпретатора php.
Любой сложный коробочный скрипт php использует eval. Форма вызова шаблона может быть иная типа include. И да, он сравнительно тормозит и от этого никуда не деться. Это же парсинг php, вызов сложного компилятора-интерпретатора.

Но не по полсекунды, о которых пишет ТС. Там что-то еще скрыто.
...
Рейтинг: 0 / 0
08.03.2016, 00:17
    #39187366
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
netwindПрограмёрEvil... ой, простите... eval следует использовать только в крайних случаях.
P.S. Замечу, что лично у меня, таких "крайних случаев" не было уже на протяжении последних лет двух наверное :)
Вы так то в курсе, что в php шаблонизаторы обычно через eval и работают ? или компилируют, но потом снова eval. Ну или еще через какую-то иную форму вызова интерпретатора php.
Любой сложный коробочный скрипт php использует eval. Форма вызова шаблона может быть иная типа include. И да, он сравнительно тормозит и от этого никуда не деться. Это же парсинг php, вызов сложного компилятора-интерпретатора.

Но не по полсекунды, о которых пишет ТС. Там что-то еще скрыто.

И что же это за шаблонизаторы, которые "обычно" через eval работают? :)

Ладно, в любом случае перефразирую, что бы не возникало споров. Eval не стоит использовать там, где есть хоть слабый намёк на пользовательский ввод. Иначе образуется потенциальная дырка для выполнения ЛЮБОГО кода на сервере посредством ввода в поле обычного php. Соответственно клиентские представления, куда вставляются переменные, введённые пользователем, я не стал бы обрабатывать эвалом ни при каких обстоятельствах
...
Рейтинг: 0 / 0
08.03.2016, 10:36
    #39187421
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
Програмёр
И что же это за шаблонизаторы, которые "обычно" через eval работают? :)

Все, которые компилируют в php и одновременно хранят данные в БД.
Обычно это делается через include, но у них других вариантов нет.

Ладно, в любом случае перефразирую, что бы не возникало споров. Eval не стоит использовать там, где есть хоть слабый намёк на пользовательский ввод. Иначе образуется потенциальная дырка для выполнения ЛЮБОГО кода на сервере посредством ввода в поле обычного php. Соответственно клиентские представления, куда вставляются переменные, введённые пользователем, я не стал бы обрабатывать эвалом ни при каких обстоятельствах

понятно. и что теперь ТС закрываться?
...
Рейтинг: 0 / 0
09.03.2016, 15:03
    #39188162
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
авторВы так то в курсе, что в php шаблонизаторы обычно через eval и работают ? или компилируют, но потом снова eval. Ну или еще через какую-то иную форму вызова интерпретатора php.

через extract они работают.
...
Рейтинг: 0 / 0
09.03.2016, 20:33
    #39188583
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
ScareCrowавторВы так то в курсе, что в php шаблонизаторы обычно через eval и работают ? или компилируют, но потом снова eval. Ну или еще через какую-то иную форму вызова интерпретатора php.

через extract они работают.

+

Да! Там используется extract внутри функции (для инкапсуляции), а потом инклуд (в котором становятся доступны нужные переменные).

И никаких тебе эвалов. и вызовов интерпретатора :)
...
Рейтинг: 0 / 0
09.03.2016, 20:48
    #39188600
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
Програмёр, но include - это же и есть вызов интерпретатора. Значит должен тормозить? однако ж всем вроде норм.
...
Рейтинг: 0 / 0
10.03.2016, 00:04
    #39188696
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
netwindПрограмёр, но include - это же и есть вызов интерпретатора. Значит должен тормозить? однако ж всем вроде норм.

Нету никаких вызовов интерпретатора. Неправильная формулировка. Ни include, ни require, ни даже eval не создаст дочерний процесс, а потому никакого запуска нету.

Но вообще, все эти конструкции при разовом вызове замедлят систему на считанные милисекунды. Потому, если они вызываются не в цикле, то и не являются виновниками полусекундного зависания.

Если таковое происходит, то искать надо или в другом месте, или же в самом коде, который посредством этих команд включается в файл.
...
Рейтинг: 0 / 0
10.03.2016, 09:48
    #39188781
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
Програмёр, он и как недочерний процесс небыстрый. Мое мнение основывается на том, что я пытался профилировать vbulletin чтобы понять как его еще ускорить. Многие решение там слишком специфичны чтобы переносить на весь современный php. Но eval вывода шаблона часто лидировал. Остальное то там все простое, а вот странички сверстаны старым тяжелым html местами на таблицах.
Я как-нибудь перетестирую повнимательней.
...
Рейтинг: 0 / 0
10.03.2016, 14:31
    #39189111
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ?
eval тормозит - это факт. но последний раз мне доводилось его видеть лет 7 назад.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Eval тормозит или мне показалось ? Кто-то тестировал на скорость eval ? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]