Technical Q&Aに、Mac OS Xのアプリケーションが同時に開くことができるファイルの最大数についての情報が掲載されている。それによると、1つのプロセスは256までのファイルを開くことができるように設定されている。通常、1つのアプリケーションは1つのプロセスと考えればよいだろう。ただし、さまざまな理由で、256よりも実際には少ない数値になっている。また、Systemフレームワークのシステムコールを利用すると、その上限値を変更することもできる。そのサンプルプログラムも掲載されている。ただし、Code Fragment Managerベースのアプリケーションの場合には直接呼び出すことができないので、CFBundleを使うと説明されている。 また、システム全体での同時に開くことができるファイル数と思われるが、その数値は12288と示されている。ただし、これはRAM容量に関連し、Virtual-Filesystemが使用するノードのレコードの数が確保できるだけということになる。128MBだと、約2864のノードまでの確保が限界になると紹介されている。一般的な利用状態だと、だいたい300から400くらいのファイルを同時に開いているくらいだということだ。さらに、システム側の同時に開くファイルの最大数をsysctlというルーチンで変更はできるが、ルート権限が必要なのと、そうした用途が実際に必要になるのは、サーバのような異なる利用形態となると説明されている。 |