> OS標準のタスクマネージャーなどでメモリ使用量を見るのが最も正確。

それがそうでもないんだよな。

たとえばアプリってのは小さいメモリ、1KB未満とかね。
そういったサイズを何個も生成する。

でも、その小さい単位毎にOSからメモリ要求したら
パフォーマンスが悪い。だからある程度固まったブロックで
メモリ要求をする。

つまりアプリで使用しているが、実際には空きであることがおおいんだよ。
でもアプリ内の空きメモリはOSからみれば使用中扱い。

だから実際に使用しているメモリとタスクマネージャのメモリをみても
正確なことはわからないんだよね。

だからJavaは専用のツールを用意している。