マイナビニュースマイナビ
tech+  Powered by  マイナビニュース マイナビニュース マイナビニュース
  • 企業IT
    • ITインフラ
    • セキュリティ
    • 開発/エンジニア
    • SaaS
    • 企業動向
    • マーケティング
    • キャリア/スキル
    • クラウド
    • ワークスタイル

    Sponsored

    • 無線LAN / Wi-Fi
    • Lenovoの企業支援+
    • デル・テクノロジーズ
    • Python学習
    • マウスコンピューター(法人)
    • 地域のスマート化
    • OPEN DX
    • マネーフォワード クラウド
    • 顧客データ活用
    • ノーコードツール kintone
    • プライバシー保護
    • 電通
    • 情シス業務改革特集
    • セキュリティ特集
    • 伊藤忠テクノソリューションズ
  • テクノロジー
    • 半導体
    • カーエレクトロニクス
    • HPC
    • 環境技術
    • サイエンス
    • 宇宙・航空
    • ものづくり

    Sponsored

    • IoT
    • インテルのAI × ITインフラ
  • 導入事例
    • 業種から探す
    • テーマから探す
    • 製品/ソリューションから探す
  • ホワイトペーパー
    コンテンツから探す
    • 事例
    • レポート
    • インタビュー
    • ソリューション
    テーマから探す
    • クラウド/データセンター
    • 仮想化
    • ハードウェア
    • スマートモバイル
    • ネットワーク
    • システム運用管理
    • CRM/SFA/マーケティング
    • 経営とIT
    • セキュリティ
    • 業務系システム
    • データ分析
    • 情報系システム
    • システム開発
    • ハードウェア開発
  • セミナー
  • はたらくの未来へ/日本HP
  • 生成AI時代のソフトウェア開発
おすすめのキーワード
  • LLM
  • クラウド
  • 生成AI
  • 導入事例
  • AI
  • ビジネス用語
  • マンガ
  • お笑い
キーワード一覧
チャンネル一覧
  • 総合トップ
  • TECH+
  • +Digital
  • PREMIUM
  • ウーマン
  • ワーク&ライフ
  • 就職応援
  • エンタメ
  • ホビー
  • 特集
  • 地域活性
  • IIJ
  • 読者コーナー
  • おすすめナビ
  • マイナビBOOKS
関連サイト
Techplus menubanner
Navi seminar
マイナビニュースについて
  • SNSアカウント一覧
  • メールマガジン登録
マイナビニュース公式SNS
  • ]
お知らせ
プライバシーポリシーを一部改訂しました
  • TECH+
  • 企業IT
  • キャリア/スキル
  • UNIX系OSで実行時間を計測する

連載

第71回
なんとなくコマンド

UNIX系OSで実行時間を計測する

掲載日  2024/07/24 11:02

鍵アイコン
  • UNIX
  • コマンド活用
  • プログラミング言語

今回は速度計測ネタです。いわゆるベンチマークというやつです。ベンチマークテストにはDhrystone(ドライストーン)などの有名なものもありますが、UNIXコマンドにはtimeという便利なものがあります。今回は、このコマンドを使ってみましょう。

今回もサンプルプログラムなどはデスクトップのsampleディレクトリに入れておくことにします。

使っているシェルを確認

 timeコマンドは以後に指定されたプログラムの開始から終了までにかかった時間を計測し結果を出力してくれます。使い方は割と簡単です。
 といきたいところですが、ここで注意事項があります。ここではtimeコマンドはzshではなくbashのシェル上で動かすことにします。また、/usr/bin/timeのtimeとは別です。要するに面倒な(?)ことに

bashの内部コマンド time
zshの内部コマンド time
/usr/bin/time

と3つあるわけです。それぞれ出力結果や使用できるオプションが異なります。最初にbashの内部コマンドのtimeを使うことにします。
macOSの場合はデフォルトではzshなのでターミナルでbashに切り替えてください。
バージョンは関係ないのでHomebrewでbash 4を入れている場合は、それを使ってください。macOSでbashに切り替えるには以下のようにbashと入力するだけです。

bash

UbuntuなどLinux系の場合は基本的にbashがデフォルトになっているので、そのままtimeコマンドを実行するだけです。もし、デフォルトのシェルがbashではない場合はmacOSと同様にbashと入力すれば切り替わります。

今使っているシェルがわからない場合は以下のようにコマンドを入力してください。

echo $0
  • (Raspberry Pi)

ちなみに使えるシェルを確認するには以下のように入力します。

cat /etc/shells
  • (Raspberry Pi)

timeコマンドのオプション

 timeコマンドについてはman timeとすると説明がでてきます。ただし、表示されるのは/usr/bin/timeのものです。このため、bash, zshの内部コマンドのtimeでは使えないオプションもあります。例えば/usr/bin/timeでは-oで結果をファイルに出力できますが、bashのtimeコマンドでは使用できません。

timeコマンドで速度計測

少し長くなりましたがtimeコマンドを使って実行にかかった時間を計測してみましょう。まず、簡単なところでecho 123の速度を計測します。以下のようにコマンドを入力します。

time echo 123
  • (Raspberry Pi)

実行するとかかった時間が表示されます。realはコマンド実行にかかった時間、userはユーザーCPU時間、sysはシステムCPU時間になります。
echoでは時間が短すぎるので、もう少し時間のかかるコマンドを実行してみましょう。sleep 3なら3秒時間がかかるはずなので、実行時間がどうなるかやってみます。1回ではなく3回実行した結果は以下の図のようになります。いろいろな関係できっかり3秒にはなりません。

time sleep 3
  • (Raspberry Pi)

今度は時間のかかるfindコマンドを実行してみましょう。ユーザーディレクトリ以下から、なさそうなファイルの拡張子を指定してみます。

time find ~/ -name *.mzt
  • (Raspberry Pi)

ファイルが多いとそれなりに時間がかかりますが、ファイルがほぼない場合はすぐに終わります。また、検索対象デバイスがハードディスクなのかSSDなのかによっても異なります。
という事で、今度は同じファイルを外付けSSDと内部のSSDと、SDカードからコピーして時間を比較してみましょう。

コピーはcpコマンドを使います。それぞれ計測した結果は以下のようになります。SDカードやSSDのファイルパスは環境によって異なるので、以下のコマンドを使って計測したい場合は環境に合わせて変更してください。

・内蔵SSDから内蔵SSD

time cp 0.MTS 1.MTS

・外付けSSDから内蔵SSD

time cp /Volumes/photoMax15/0.MTS ~/Desktop/Sample/0.MTS

・SDカードから内蔵SSD

time cp /Volumes/CAM_SD/0.MTS ~/Desktop/sample/0.MTS

自作のシェルスクリプトの処理速度を計測

 timeコマンドの便利なところは自作のシェルスクリプトの速度も計測できる点です。
まず、簡単なところで繰り返し処理を計測してみましょう。bashの繰り返しはforですが、いくつか書き方があります。そこで、書き方によって、どのくらい速度が異なるのかを計測してみます。基本的に処理速度のネックとなるのは繰り返し部分です。
なお、以下で実行するシェルスクリプトは0から999まで画面に数値を表示するだけのものです。

▪1.sh
#!/bin/bash
for ((i=0; i<1000; i++)); do
    echo $i
done
  • (Raspberry Pi)

▪2.sh

#!/bin/bash
for i in {0..999}; do
    echo $i
done
  • (Raspberry Pi)

▪3.sh

#!/bin/bash
array=({0..999})
for i in ${array[@]}; do
    echo $i
done
  • (Raspberry Pi)

 さすがに近年のマシンは高速なので、もう少し回数を多くするか負荷が高いものにしないといけなかったかもしれません。幸い(?)15年前のMacPro (2009年) のマシンがあったので1.sh,2.sh,3.shを計測してみました。今となっては小型のラズベリーパイ5の方が高速でした。これも時代の流れですが、ウン十万円もしたマシンが15年も経過すると数千円のものにもかなわないのは、う〜んと天を仰いでしまいます。

その他のシェルのtime

 最後に他のシェルでtimeコマンドを実行してみましょう。ここではmacOSでシェルを切り替えて実行してみます。

sh

echo $0
time sleep 3

csh

echo $0
time sleep 3

tcsh

echo $0
time sleep 3

ksh

echo $0
time sleep 3

zsh

echo $0
time sleep 3

次にシェルではなく/usr/bin/timeで実行してみます。

/usr/bin/time sleep 3

せっかくなので最後にPowerShell Coreでの計測方法も載せておきます。
PowerShellではMeasure-Commandを使います。

Measure-Command {
    Write-Host 123
}

ちなみに以下のように1行にまとめることもできます。ここでは1行で実行した結果を示します。

 Measure-Command { Write-Host 123 }
  • (Mac)

  • (Windows 10)

いろいろな情報が表示されますが、秒数だけ分かればいいのであれば以下のようになります。

(Measure-Command { Start-Sleep -Seconds 3 }).Seconds    
  • (Mac)

  • (Windows 10)

Ticktimeなら以下のようになります。他の値も同様に指定すれば必要な項目だけを表示させることができます。

(Measure-Command { Start-Sleep -Seconds 3 }).Ticks
  • (Mac)

  • (Windows 10)

速度計測といえばベンチマークテストを行うプログラム(Unix Bench等)もありますが、これはまたの機会にでも。 それでは、また次回。

著者 仲村次郎
いろいろな事に手を出してみたものの結局身につかず、とりあえず目的の事ができればいいんじゃないかみたいな感じで生きております。

この連載の前後回

  • 第73回
    ラズベリーパイのコマンドを使ってみる(2)
  • 第72回
    ラズベリーパイのコマンドを使ってみる(1)
  • 第71回
    UNIX系OSで実行時間を計測する
  • 第70回
    Pythonで既存のテキストからワードファイルを作成する
  • 第69回
    Pythonでワードファイルを作成する
この連載のバックナンバー

AIが勧める、あなたのための会員限定記事

  • 分業化が進む脅威に対し、どう対策をすべきか - セキュリティ専門家が語る
    セキュリティ

    鍵アイコン 分業化が進む脅威に対し、どう対策をすべきか - セキュリティ専門家が語る

  • サクッと試す!HTML+JavaScript APIの最新事情 第8回 最適な画像を自動表示する!srcset属性とsizes属性を試そう
    開発/エンジニア

    鍵アイコン サクッと試す!HTML+JavaScript APIの最新事情 第8回 最適な画像を自動表示する!srcset属性とsizes属性を試そう

  • WordPressプラグイン・テーマの脆弱性最新情報 第27回 WordPress脆弱性36件、未認証攻撃も 今すぐ対応すべきプラグインはどれか【4月9日~4月15日】
    セキュリティ

    鍵アイコン WordPressプラグイン・テーマの脆弱性最新情報 第27回 WordPress脆弱性36件、未認証攻撃も 今すぐ対応すべきプラグインはどれか【4月9日~4月15日】

  • 知って得するWord使いこなし術 第40回 Wordのブックマークを相互参照やリンクに活用する
    SaaS

    鍵アイコン 知って得するWord使いこなし術 第40回 Wordのブックマークを相互参照やリンクに活用する

  • TSMCがA14発展版となる「A13」と「A12」プロセスを発表、2029年より量産開始を予定
    半導体

    鍵アイコン TSMCがA14発展版となる「A13」と「A12」プロセスを発表、2029年より量産開始を予定

  • 柳谷智宣のAIトレンドインサイト 第29回 AIと会話するだけでセンスのいいデザインができる「Claude Design」
    ITインフラ

    鍵アイコン 柳谷智宣のAIトレンドインサイト 第29回 AIと会話するだけでセンスのいいデザインができる「Claude Design」

アクセスランキング
  •  プログラム言語を利用する(Ruby)

    鍵アイコン なんとなくコマンド 第113回 プログラム言語を利用する(Ruby)

    2026/04/23 16:31 連載
  • どんなに慎重に扱ってもミスは起こる、時には学術論文のデータセットであっても

    鍵アイコン どんなに慎重に扱ってもミスは起こる、時には学術論文のデータセットであっても

    2026/04/20 12:06 レポート
  • Exa Enterprise AI、生成AI活用と変革を推進する人材の素養を測定できるテストを提供開始

    2026/04/24 20:27
  • エンタープライズIT新潮流 第68回 ダイバーシティはもう古い?インクルージョンとAIがもたらす真のイノベーション

    2026/04/13 16:16 連載
  • "究極"のNano Bananaプロンプトガイドとは?Googleが公式ブログで指南

    鍵アイコン "究極"のNano Bananaプロンプトガイドとは?Googleが公式ブログで指南

    2026/03/11 17:19 レポート
ランキングをもっと見る
もっと見る

編集部が選ぶ関連記事

  • なんとなくコマンド 第70回 Pythonで既存のテキストからワードファイルを作成する
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第70回 Pythonで既存のテキストからワードファイルを作成する

  • なんとなくコマンド 第69回 Pythonでワードファイルを作成する
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第69回 Pythonでワードファイルを作成する

  • UNIX
  • コマンド活用
  • プログラミング言語

※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。予めご了承ください。

新着記事
  • エンタープライズIT新潮流 第69回 組織変革を加速する「組織OS」とは?ピーター・センゲに学ぶ"学習する組織"の本質
    キャリア/スキル

    エンタープライズIT新潮流 第69回 組織変革を加速する「組織OS」とは?ピーター・センゲに学ぶ"学習する組織"の本質

    2時間前 連載
  • Exa Enterprise AI、生成AI活用と変革を推進する人材の素養を測定できるテストを提供開始
    キャリア/スキル

    Exa Enterprise AI、生成AI活用と変革を推進する人材の素養を測定できるテストを提供開始

    2026/04/24 20:27
  • なんとなくコマンド 第113回 プログラム言語を利用する(Ruby)
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第113回 プログラム言語を利用する(Ruby)

    2026/04/23 16:31 連載
  • 迷わないメニューの重要性とカスタマイズでトップメニューを変える心地良さ
    キャリア/スキル

    鍵アイコン 迷わないメニューの重要性とカスタマイズでトップメニューを変える心地良さ

    2026/04/22 14:35 レポート
  • なんとなくコマンド 第112回 ジョブ関係のコマンド
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第112回 ジョブ関係のコマンド

    2026/04/21 19:04 連載
  • 第9回『学生が選ぶキャリアデザインプログラムアワード』、受賞法人決定 大賞はニトリ
    キャリア

    第9回『学生が選ぶキャリアデザインプログラムアワード』、受賞法人決定 大賞はニトリ

    2026/04/21 16:35
こちらも注目
  • TECH+
  • 企業IT
  • キャリア/スキル
  • UNIX系OSで実行時間を計測する

このカテゴリーについて

ビジネスパーソンのキャリアに関する情報や業務の効率化や生産性向上などのスキルアップに役立つ情報を提供していきます。

Techpopbanner upper Techpopbanner bottom
  • TECH+について
  • 利用規約
  • お知らせ
  • 会員規約
  • その他、お問い合わせ
  • 情報提供
  • サイトマップ
  • 広告について
  • 著作権と転載について
  • 個人情報の取り扱いについて
企業IT/テクノロジー/Members+ メールマガジン
  • 購読登録はこちら
  • 配信停止はこちら
TECH+ 公式SNS
Copyright © Mynavi Corporation