15

サーバーには、ルート ディレクトリの下でアクセスされるすべてのファイルをキャッシュするキャッシュ エンジンがあります。Chokidar を使用してディレクトリ ツリー全体を (再帰的に) 監視し、ファイルの変更を確認し、それに応じてキャッシュを更新することを考えています。しかし、サブディレクトリに数十万のファイルが含まれているとどうなるか心配です.Chokidarはどれほど効率的でしょうか?

4

1 に答える 1

17

Chokidar の効率は、実行しているオペレーティング システムによって異なります。

fseventsOS X では、非常に効率的なネイティブ APIへのアクセスを提供するモジュールを使用します。

他のシステムでは、node.jsfs.watchまたはfs.watchFileAPI を使用します。内部でfs.watchは、さまざまなシステム API を使用して変更を通知しますが、これはかなり効率的です。fs.watchFileこれは、あなたが説明しているほど大きなディレクトリには絶対に不適切です。

私の提案は、chokidar オプションを設定してusePolling: false、CPU 負荷を監視しながら試してみることです。

更新 (2015 年 7 月): Chokidar は、これが最初に作成されてから大幅に改善され、ポーリングはどのプラットフォームでもデフォルトではなくなりました。

于 2014-10-30T13:48:28.553 に答える