Use defer if its overhead is relatively negligible, or it buys meaningful readability #6

Opendmitshur opened this issue 2 years ago
dmitshur commented 2 years ago ยท edited

Don't use it if the readability is not improved.

Using it has a fixed performance overhead, which is noticeable for operations that run on the order of nanoseconds.


Write Preview Markdown
martingartonft commented 2 years ago

performance is becoming less of an issue. For example

Write Preview Markdown
peterbourgon commented 11 months ago

Like any language feature, defer should be used when it's useful: it's the default and idiomatic way to implement the function-scoped RAII pattern in Go, and that property exists independent of the length of the function. And, like any language feature, performance should only become a consideration when profiling reveals it to be a problem.

Avoiding defer where it makes sense in deference to an ominous fixed performance overhead is pre- and micro-optimization. Don't do it.

Write Preview Markdown
to comment.