●処理時間の計測
IBM AS/400でのプログラムやプロシージャなどの動作について
記憶装置は全て主記憶(Windowsでは主記憶の一部にページング用メモリ)をシミュレート
つまりCPUからは、全てのOS・プログラム・データベースなどは主記憶にあるように見える
当然、AS/400にもHDDやSSDは存在する
それらは、主記憶の一部を構成する
(えっ?それって遅いんじゃない?)そんな声が聞こえてきそう(笑)
でも、そのように見せるため仕組みが・・・賢い(笑)
もちろん、主記憶全部がメモリであるわけはない
最近では、補助記憶部分の全てをSSDで構成することも行われているが
SSDと言えども主記憶メモリの速度に比べたらかたつむり
なので、主記憶のうちメモリ部分とHDDやSSDとの間のデータ転送は必要
これはページングとかメモリスワッピングとか呼ばれる
●1回目は遅いはず
なので、あるプログラムを起動すると
1回目から早い場合もあり、遅い場合もある
主記憶のうち、メモリ上にある場合は早く、HDDやSSD上に有れば遅い
それはWindowsでも同じ
ただ・・・・
IBM i というOSがメモリ管理しているわけではない
●2回目以降が早い理由
IBM i というOSが全てのジョブ、全てのプロセスを管理しているため
主記憶のメモリ上に読み込んでこなければならないオブジェクト(プログラム、データベースなどもろもろ)を全て知っており
全てのジョブがどのデータベースを使用しているかを把握
効率よいページングを行っている
いろいろなジョブで良く使われるプロシージャとかデータベースは
恐らくいつもメモリ上に存在しているから2回目以降は極端に早くなる
また、データベース機能が素敵だから
インデックスを張った場合、必要なレコードだけがメモリ上に展開されたりと
プログラムが最高に早く動作できる環境を提供してくれている
●そのまた理由
そして、冒頭に話したページング・・・これを
IBM AS/400ではハードウェアで行っている
CPUがしているわけではない
なので、CPUはブログラムを実行するだけ
その実行に必要な全てのオブジェクトはハードウェアが用意してくれる
このため、めちゃ早になる
●余談
前職での話
グループ他社が前職のシステムをWindowsベースで開発すると・・・
どうやら親会社が自分とこのシステムを前職の会社に導入させようとした
そこで、要件定義をするとき、処理時間も加えた
これからが大変だった
処理速度が3分以上のプログラムを探すというとんでもない業務が降りかかってきた
2週間ぐらい探しまくったが、見つからなかった
プログラム本数は3,000本ほど
仕方なく、オーディエンスを行った(笑)
現場の方に、遅い処理に何があるか聞いてみた
結果、1個のプログラムが候補に挙がった
それで試してみると、結果がでるまで3分19秒
(これで細工(サイク=319)は流々と思ったので覚えてる(笑))
ところが、2回目以降に時間が短縮される事を思い出し
同じプログラムをもう一度起動してみた・・・・
悲しいことに3秒程度で終わってしまった
と、いうことで3分以上時間がかかる処理は
・夜間バッチ(これはWindows化対象外)
全報告書印刷出力ジョブなので30分はかかる
・請求明細作成(これもWindowsか対象外)
全顧客の一か月分の請求明細を作成するため3分半はかかる
のみ(笑)
どんだけ早いねん!と思ってた
人気ブログランキング
タグ:爆速
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image