LINUX.ORG.RU

История изменений

Исправление dem, (текущая версия) :

Не ну если ты сравниваешь строки в case или ищешь в статическом dict то кто мешает компилятору сгенерировать 1 и тот же код? Потому я не понимаю чем отличается


h={
   'a': func1,
   'b': func2}
h['a']()

от

if x=='a':
   func1()
elif x=='b':
   func2()

Эти записи равносильны с точки зрения логики. Возможно оптимизатор их и не приравняет. Но ведь уже было показано когда LUA оказался в разы быстрее C.

Потому это все просто гадание на кофейной гуще.... Надо делать бенчмарк и смотреть.

Исходная версия dem, :

Не ну если ты сравниваешь строки в case или ищешь в статическом dict то кто мешает компилятору сгенерировать 1 и тот же код? Потому я не понимаю чем отличается


h={
   'a': func1(),
   'b': func2()}
h['a']()

от

if x=='a':
   func1()
elif x=='b':
   func2()

Эти записи равносильны с точки зрения логики. Возможно оптимизатор их и не приравняет. Но ведь уже было показано когда LUA оказался в разы быстрее C.

Потому это все просто гадание на кофейной гуще.... Надо делать бенчмарк и смотреть.