тормозят ли try catch

romy4

invoke [brain]
тормозят ли try catch [updated]

может я не прав, но try catch блоки, со множеством throw в середине, довольно-таки сильно тормозят работу.
тест показал (машинка по скорости работает как сервак 3-ГГц, нагруженный на 10-15%):
потеря на относительно небольших скриптах с 5-6 сложнонаследуемыми с небольшими невложенными классами размером до 30Кб, потери составили, приблизительно, 0.01-0.02 сек. по сравнению с тем же кодом, без исключений 0.009-0.006
так ли это?

Заменил все конструкции try catch на возврат ошибок путем вызова return myset_error($errno,$errstr) которая устанавливает внтуримодульную ошибку и возвращает TRUE или FALSE.
время работы сократилась от 0.04 сек (с try-catch) до 0.012 сек (с myset_error).
 

romy4

invoke [brain]
не смешно. вопрос можно поставить и так: а нужны ли вообще эксепшены?
 

itprog

Cruftsman
romy4
а теперь сам ответь на вопрос "а нужны ли вообще эксепшены?"
 

vadim

Guest
romy4
Можно также вообще без классов программировать, одними фнукциями. И такие скрипты будут быстрей исполнятся, чем бесконечные классы.
Но выгода от удобства программирования с классами, exceptions и тд намного больше, чем потеря скорости исполнения скрипта, поэтому с современными процесорными мощностями можно закрыть глаза на вопрос скорости
 

romy4

invoke [brain]
itprog вот почему:
1)ошибки в функциях вызывают эксепшены
2)ошибки в функциях возвращаются значеним (а: FALSE, b: как значение >0)

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