2018年11月18日日曜日

AOPSというものを定義したい - Node.js Async 非同期処理の性能を表すため

非同期処理の性能を表す単位として、だ。
asynchronous operations per secondの略とする。
1秒間あたりの非同期操作とか非同期処理の回数を意味する。
IOPSとかRPSを参考にした。
Node.js (JavaScript) で非同期処理を行っているのだが、どうも余計な処理が増えてきて遅くなっているように感じられたので、性能を計測したいと考えたのだ。
単純なコールバックだったものをasync awaitで処理したいので、Promise化 (util.promisify) したりして、なんだかいろいろと処理が増えすぎているような気がするのだ。
遅くなっていないのだろうか。
I/O処理 (Disk I/O, Network I/O, etc...) は、そもそもかなり時間がかかるものなのだから、そういう心配は余計なのかな。
Promiseで体系を作ってしまっているので、今更なのだろうが...

IOPS とは...
input/output operations per secondの略
ディスクの性能などを表す単位
1秒間あたりの入出力操作の回数

https://ja.wikipedia.org/wiki/IOPS
https://searchstorage.techtarget.com/definition/IOPS-input-output-operations-per-second

RPSとは...
回毎秒 (revolutions per second) または回転毎秒 (rotations per second) の略
https://ja.wikipedia.org/wiki/Rps_(単位)
RPMとも言うね。
私はRPSをrequest per secondの略としても良いと思った。
HTTP GETとかPOSTリクエストを何回処理できるか、という単位として、だ。
じゃあ、network input/output operations per secondでNIOPSでもいいか。
ダサいので却下。

node v10のfs.mkdirでmkdirp(mkdir -p)ができる様になってたね

Node.jsでやっとmkdirp (mkdir -p) ができる様になったんだね。

http://var.blog.jp/archives/77266235.html

今後使っていく。Node v10以降の環境が前提の時に。

Node v8 fs.mkdir: https://nodejs.org/dist/latest-v8.x/docs/api/fs.html#fs_fs_mkdir_path_mode_callback
Node v10 fs.mkdir: https://nodejs.org/dist/latest-v10.x/docs/api/fs.html#fs_fs_mkdir_path_options_callback

npm mkdirp: https://www.npmjs.com/package/mkdirp とか
npm mkdir-parents: https://www.npmjs.com/package/mkdir-parents
を使わなくて済むね。