free for macOS - なぜか存在しない「free」のmacOS版

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20240103 113912

macOSとLinuxは共にUNIX系のOSで、コマンドラインツールなど共通する部分が多数存在します。しかし、Linuxに存在する空きメモリ確認コマンド「free」は、何故かmacOSには存在しませんでした。

今回紹介する「free for macOS」は、Linuxと同じようにmacOS上でメモリ使用量を確認することができるできる、macOS版の「free」コマンドです。

作者によると、MachのマイクロカーネルはLinuxとは異なるため、報告される値はLinuxシステムから得られるものと完全に同じではないとのこと。その代わり表示される値は「Activity Monitor」からの出力とほぼ一致しているそうです。

以下使用方法を説明します。

目次

free for macOSの使用方法

free for macOSはHomebrewでインストールすることができます。

brew tap zfdang/free-for-macOS
brew install free-for-macOS

シンプルなプログラムなので、ビルド環境があれば簡単にコンパイルすることもできます。

git clone https://github.com/zfdang/free-for-macOS.git
cd free-for-macOS
make

単純に「free」コマンドを実行するとトータルのメモリ容量、使用メモリ量、空きメモリ量等が表示されます。-hオプションを指定すると数値がGBやMBなど分かりやすい表示に切り替わり、-s 1を指定すると1秒ごとに定期的に実行されます。

S 20240103 115010

GitHubにはどのようにfreeコマンドを実装したのか、技術的な詳細に関する説明も行われています。システム情報を表示するユーティリティを開発する際にも参考になりそうです。

Total memory is fetched from host_info().

Apple Developer Documentation
host_info | Apple Developer Documentation There's never been a better time to develop for Apple platforms.

Swap information is fetched from sysctl().

MacRumors Forums
sysctl and CTL_VM I am trying to get the total amount of virtual memory on my system using the following code: //get the swap size int vmmib[2] = {CTL_VM,VM_METER}; struct vmtota...

All other memory information is fetched from host_statistics64().

Apple Developer Documentation
host_statistics64 | Apple Developer Documentation There's never been a better time to develop for Apple platforms.

Here are the methods to calculate memory statistics:

まとめ

free for macOSはLinuxの「free」のmacOS版です。空きメモリを素早く確認することができる便利なツールです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次