私は非常に大きなファイルのコレクションを持っています。私の仕事は、このコレクションからいくつかのランダムなファイルを開き、それらのコンテンツを整数のセットとして扱い、それを交差させることです。
このプロセスは、ディスクからメモリにファイルを読み取る時間が長いため非常に遅いため、プログラムを「クイック」言語で書き直すことで、このファイルからの読み取りプロセスを高速化できるかどうか疑問に思っています。現在、私はこの種の仕事には非効率的なPythonを使用しています。(python と javascript 以外の言語を知っていれば、自分でテストを実装できます...)
また、すべての日付をデータベースに入れることは役に立ちますか? とにかくファイルはRAMに収まらないため、データベース関連のオーバーヘッドのみでディスクから再度読み取られます。
ファイルの内容は長整数のリストです。ファイルの 90% は非常に小さく、10 ~ 20MB 未満ですが、残りの 10% は約 100 ~ 200MB です。入力としてファイル名があり、各ファイルを読み取り、指定されたすべてのファイルに存在する整数を出力する必要があります。このデータをmongodbに入れようとしましたが、mongoインデックス機能を使用しようとしたが、mongoはインデックスをRAMに保存しないため、プレーンファイルベースのアプローチと同じくらい遅くなりました。現在、最大のファイルの 10% を切り取り、残りを redis に保存し、時々それらの大きなファイルにアクセスしています。これは明らかに一時的な解決策です。これは、データが大きくなり、使用可能な RAM の量が増えないためです。