Not a kernel guy

… in the Windows kernel team

Tuesday, November 21, 2006

Статические assertions против динамических.

Кстати, никто не знает как перевести на русский слово assertion?

Интересно сравнить частоту использования статических и динамических assertions. Поиск в Google Code Search выдаёт вот такие результаты:

  • Поиск по “C_ASSERT” даёт 15 ссылок;
  • “BOOST_STATIC_ASSERT” – около 200;
  • “STATIC_ASSERT” – ещё 100.

В то же время общее число упоминаний “ASSERT” даёт около 386000 ссылок. Разница больше 3-х порядков! Из этого можно сделать вывод, что статические assertions, не смотря на всю пользу от них, практически не используются. Для сравнения, на один статический assertion в коде Vista приходится около 50 динамических.

Чем хороши статические assertions? Во-первых, все проверки выполняются во время компиляции, позволяя обнаруживать ошибки как можно раньше. Во-вторых, при компиляции выполняются все проверки, присутсвующие в программе, в том время как динамические assertions проверяются только во время выполнения каждой ветки кода (что может и не случиться до самого выпуска программы “в свет”).

Естественное ограничение статических assertions – они могут проверять только статические условия. Очевидно что в большинстве случаев динамический assertion – единственный выбор программиста. Тем не менее, следует стремиться использовать статические проверки везде, где это возможно.

Posted at 3:19 pm •

RSS feed | Trackback URI

1 Comment »

Comment by Vladimir Scherbina — November 24, 2006 @ 4:01 am

>>Кстати, никто не знает как перевести на русский слово assertion?

 

Your Comment (smaller | larger)

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress