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.

4章GoでのCPUリソースの活用方法の(ちょっとした)解説

もっとも有用な抽象化の1つは、ハードウェアとインフラストラクチャシステムの特性をリソースとして扱うことです。 CPU、メモリ、データストレージ、ネットワークは、自然界の資源に似ています。 それらは有限であり、現実世界の物理的な物体であり、生態系のさまざまな主要なプレイヤー間で分配され共有されなければなりません。

Susan J. Fowler, Production-Ready Microservices (O'Reilly, 2016) [1]

「1.1 性能の背後にあるもの」 で学んだように、ソフトウェアの効率は、プログラムがハードウェアリソースをどのように使用するかに依存します。 同じ機能で使用するリソースが少なければ、効率は向上し、そのようなプログラムを実行するための要件と純費用は減少します。 たとえば、CPU時間(CPU「リソース」)やアクセス時間の遅いリソース(ディスクなど)の使用量が少なければ、通常、ソフトウェアのレイテンシーを減らせます。

これは単純に聞こえるかもしれませんが、現代のコンピューターでは、これらのリソースは複雑で自明でない方法で相互に作用しています。 さらに、複数のプロセスがこれらのリソースを使用しているため、私たちのプログラムはこれらのリソースを直接使用することはありません。 そのかわり、これらのリソースはオペレーティングシステムによって管理されています。 これでもまだ十分複雑でない場合、特にクラウド環境では、ハードウェアをさらに「仮想化」して、多くの個々のシステムで分離して共有できるようにすることがよくあります。 ...

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