Skip to main content

Get full access to 効率的なGo ―データ指向によるGoアプリケーションの性能最適化 and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

9章データ駆動ボトルネック分析

プログラマーは通常、コードのどの部分が主にリソースを消費しているかを推測するのが苦手です。 プログラマーは、あるコードを修正することで大幅な時間短縮を期待していたのに、そのコードがほとんど実行されていなかったために、まったく効果がなかったということはよくあることです。

Jon Louis Bentley, Writing Efficient Programs

Goプログラムの効率を向上させる重要なステップのひとつは、改善したいレイテンシーやリソースの使用量の主な原因がどこにあるのかを知ることです。 したがって、最適化によって最大の価値を得るためには、まずもっとも寄与している部分(ボトルネックまたはホットスポット)に焦点を当てるよう意識する必要があります。

ソフトウェア開発の経験を活かして、コードのどの部分がもっとも計算コストが高いか、あるいは遅すぎるかを推定することは非常に魅力的です。 過去に似たようなコードの断片が効率性の問題を引き起こしているのをすでに見たことがあるかもしれません。 たとえば、「ああ、Goで連結リストを扱ったけど、すごく遅かったから、きっとこれだ!」や、「ここで新しいスライスをたくさん作っていて、ここがボトルネックだと思うから、いくつか再利用しよう」といった具合です。 私たちは、それが引き起こしたかもしれない痛みやストレスをまだ覚えているかもしれません。 しかし、残念ながら、そのような感情に基づく結論は間違っていることが多いのです。 プログラム、ユースケース、環境はそれぞれ違います。 そのソフトウェアは、他の場所に問題があるのかもしれません。 その部分をすばやく確実に明らかにし、最適化の努力をどこに費やすべきかを知ることが不可欠なのです。 ...

Get 効率的なGo ―データ指向によるGoアプリケーションの性能最適化 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now