プログラムコンパイル時のパフォーマンスは?

はじめに   第1回はCPU、第2回はI/O周りの性能について検証を行いました。今回は、CPUとI/O周りに加え、メモリアクセスを組み合わせた総合的なパフォーマンスを見てみましょう。具体的には、同じプログラムをコンパイルさせ、その時間の差異を測ります。

宮本 久仁男

2006年10月27日 20:00

はじめに

   第1回はCPU、第2回はI/O周りの性能について検証を行いました。今回は、CPUとI/O周りに加え、メモリアクセスを組み合わせた総合的なパフォーマンスを見てみましょう。具体的には、同じプログラムをコンパイルさせ、その時間の差異を測ります。

   第2回では同期I/Oを発生させましたが、これはI/O装置の最適構成を検討するための仕込みであり、実際の利用を行うにあたって同期I/Oを行う ことは(信頼性はともかくとして)性能の面で不利になります。そこで、第3回は非同期I/Oにこの部分を戻してみます。

環境の作り方

   今回の検証には、Xenそのもののをコンパイルする環境が必要になります。インストールについての解説は割愛しますが、最低限コンパイラが必要です。

   みなさんの環境でチェックされる場合には、コンパイラまでインストールされているかどうかを確認の上実施してみてください。

ドメイン0におけるXenそのもののコンパイル性能を見る

   今回の執筆時にちょうどXen 3.0.3がリリースされたこともあり、このプログラムをコンパイルしてみます。

   まずはネットワークI/Oが発生しないように、次のようにLinuxカーネルソースをローカルにコピーします。



$ gzip -dc xen-3.0.3_src.tgz | tar xvf
$ cd xen-3.0.3_src
$ (カーネルソースを取得)
$ date >> ../compiletime;make;date >> ../compiletime

   このようにしてファイルcompiletimeに記録された時刻から、処理にかかった時間を算出します。コンパイルという作業の特性を考えると、表 1にあげる処理の連続になります。もっとも時間がかかるのはファイルI/Oと考えられますが、ファイルI/Oの性能は、非同期I/Oで実施すると実I/O が発生するタイミングに差異がでてきます。


  1. ファイル読み込み
  2. メモリ読み書きおよび演算
  3. ファイル書き込み
表1:コンパイルの処理の流れ

   先のコンパイルした時刻を記録したファイルcompiletimeは次のようになっています。これより、ドメイン0のXen 3.0.3のコンパイルには59分9秒かかったことがわかります。



2006年 10月 25日 水曜日 03:10:44 JST
2006年 10月 25日 水曜日 04:09:53 JST

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30