Juliaでプログレスバーの表示をする

  • 6
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

サンプリングなど、何回反復するかはわかってるけど時間のかかる計算をするときにプログレスバーを表示したいことがあるわけです。
そんなときに便利なパッケージがProgressMeter.jlです。

使い方はとても簡単で、以下のようにProgress(N)で進捗状況を知らせるオブジェクトを作り、next!(progress)を呼ぶことで、状態を更新してバーを描画してくれます:

using ProgressMeter

function run(n_iterations)
    progress = Progress(n_iterations)
    for n in 1:n_iterations
        sleep(1)  # ここに何か処理
        next!(progress)
    end
end

run(100)

出力にはバーの他に予想される終了時間(ETA)も表示されます。

~/tmp $ julia progress.jl
Progress: 8%|### | ETA: 0:01:33