AS3 попробовать поймать тяжело? - PullRequest
4 голосов
/ 12 ноября 2010

Почему использование try catch плохо влияет на производительность приложения?
Я не говорю об использовании try catch 100 раз.На самом деле, когда я использую его тысячи раз.
Действительно ли это вызывает проблемы с производительностью?

Спасибо

Ответы [ 3 ]

4 голосов
/ 12 ноября 2010

try / catch (как анонимная функция) создаст объект Activation, который будет использовать больше памяти и не будет использовать регистр для вашей локальной переменной. Таким образом, использование его приведет к потере памяти и замедлению использования всей функции .

Вы можете посмотреть на производительность в формате avm2 PDF , например, там не говорилось о try / catch, но вы можете посмотреть в главе закрытия метода, где описаны анонимные функции и использовать тот же механизм для try / catch

3 голосов
/ 12 ноября 2010

Говоря об использовании исключений в качестве общей практики, имейте в виду, что исключения являются «исключительными».Пока вы используете их для того, для чего они предназначены - обработки событий, которые не должны происходить, это должно быть хорошо.

Итак, не пытайтесь использовать исключения для ветвления, реализации подпрограмм или передачиинформация вокруг, и это не должно влиять на производительность.Даже если он тяжелый, он должен вызываться один раз в долгое время.Или, желательно, никогда.

1 голос
/ 12 ноября 2010

Да, оператор try и catch очень медленный (по сравнению с другими операциями), когда он ловит ошибку. Очевидно, что он имеет свое назначение, но никогда не полагается на оператор try и catch для логического управления. Он предназначен для защиты кода, где есть вероятность возникновения ошибки (например, файла IO).

...