Re[8]: Тенденции языков
От: s22  
Дата: 21.06.15 13:13
Оценка:
Здравствуйте, Ops, Вы писали:

Ops>Здравствуйте, Vain, Вы писали:


V>>Чтобы нормально ловить и обрабатывать исключения приходится их перебрасывать (т.н. трюк с rethrow) либо в макросе (чтобы гарантировать что макрос вставили в конце цепочки catch'ей) либо в функции (для эстетов, но также с переброской). Это приводит к "испарению" преимущества по производительности исключений по сравнению с кодами возвратов.

V>>А теперь расскажи нам какой компилятор сможет перебрасывать исключения без потери производительности?
Ops>Уж сколько раз твердили миру... Исключения — они вылетают в _исключительных_ ситуациях, которые случаются _редко_. И в этом случае мы имеем высокую производительность пока их не происходит. Если же их использовать как goto, то конечно, про производительность можно забыть.
Ops>Ну вот есть функция, которая возвращает да/нет, и в зависимости от результата идет ветвление. Глупо было бы это делать на исключениях. А вот если по какой-то причине (нехватка ресурсов, поврежденные данные, и т.п.) она не может вернуть корректный результат, то можно и бросить.

goto выполняется 0 тактов
так же как и условный переход, если он правильно предсказан.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.