オーバーヘッドと高速化

著者:杉浦

オーバーヘッドと高速化

 プログラミングの世界においてオーバーヘッドは大体、何かをしようとした時に引っ付いてくる負荷のことを言います。例えば、プロセスにはプロセス自体の処理のみならず起動終了処理が必要です。この場合、起動終了処理がオーバーヘッドと呼ばれます。
 何かを繰り返し実行することで目的を実現する場合、繰り返し実行されるもののオーバーヘッドが大きい場合、オーバーヘッドの積み重なりにより全体の実行完了までの時間は長くなります。このような時、オーバーヘッドを必要としない手法を考える事で高速化を実現することがあります。
 例えば、多数の小さなプログラムによって大きな目的を達成しようとする時です。このような時、多数のプログラムを起動すること、終了することがオーバーヘッドになり、オーバーヘッドの積み重なりによって実行完了までの時間が長くなります。高速化は多数のプログラムを動作させるのではなく、大きな一つのプログラムにまとめることによって実現できます。
 他にはwebページの生成処理や通信の必要な処理です。ブラウザはウィンドウのルートのDOMの要素が変更されるたびに描画処理を実行します。webページの生成の際にはDOMの操作を抑えるか、一斉に行うことによって描画処理の実行を抑えることによって実行時間を短縮します。通信はデータが行って帰ってくるだけで通信資源を食べます。宛先等の情報を組み込んだヘッダの生成、やり取りが大きなオーバーヘッドです。何度も通信するのでなく、一度の通信で大きくやり取りを行うと実行完了までの時間が短くなります。

  • この記事いいね! (0)

著者について

杉浦 administrator