readdirとの差はそれほど大きくない。stats関数で呼び出し回数が増えている分のオーバヘッドと思われる。オブジェクトの生成によるオーバヘッドが大きく予想通り他の2つと比べてかなり遅い。ファイルサイズの取得処理を除いて単純な一覧取得だけに絞って実行してみると次のようになる。stats実行の処理が比較的重いことが分かる。同じパフォーマンスを持ちながら、readdirよりも簡潔にコードを記述できる。stats情報の取得やソート処理が行えるなど高機能である。使える処理系(iOS含む)であればこちらを利用する方が何かと便利だろう。他の2つに比べると速度性能でかなり劣る。cocoaで記述できるメリットもあるので対象データ量が少ない場合であればこれを使うのも悪くはない。性能が同程度となるともう一つ気になるのはメモリのフットプリント。Instrumentsを使いシミュレータ上でのメモリの変化を調べてみたところ次のようになった。ほとんど変わらず、両方共にメモリの利用量は多く無い。生成コストが大きくかなりのメモリを消費している。先のケースではソートを行っていなかった。パス名でのソート処理を入れた時の時間を計測してみた。6.6秒とソート未指定時と変わらない。出して確認してみたがちゃんとパス名降順で一覧が取得できてる。