2

パフォーマンスの面で何が優れているのか疑問に思っています。1つの大きなテキストファイル(約10GB以上)に書き込むか、各レベルに256個のフォルダーがある3つのレベルを持つサブフォルダーシステムを使用します。最後のレベルはテキストファイルになります。 。例:

1
 1
 2
 3
  1
  2
  3
  4
 4
2
3
4

アクセスが頻繁になるため(開いて、テキストを追加してから閉じる)、何が良いのかわかりません。1秒間にファイルポインタを1000回開いたり閉じたり、1つの大きなファイル内のポインタを1000回変更したりします。

私はコアi7、6GB DDR3のRAM、およびext4で60MB/sの書き込みディスク速度を使用しています。

4

2 に答える 2

2

あなたはかなり一般的な質問をするので、一般的な答えは大きなファイルを使ってそれにアクセスし、ファイルシステムとそのキャッシュにアクセスの最適化について心配させることです。たぶん、彼らはあなたが今やったよりももっと高度なアルゴリズムを思いついたでしょう(違反はありません)。

于 2011-10-20T22:49:17.407 に答える
0

決定を下すには、次のような多くの質問に対する答えを知る必要があります。

  • 探している情報のためにアクセスする多くのファイルのどれをどのように決定しますか?
  • 追加する必要がある場合、それは論理的な最後のファイルになりますか、それとも情報が見つかったはずのファイルの最後になりますか?
  • 情報がどこにあるかについて、特定のファイル(大または小)のどこを探すかをどのように知るのですか?
  • 256個の3ファイル(すべてを使用する場合は1600万程度)には、かなりの量のディレクトリストレージが必要です。

あなたは実際にファイルを読むことについて何も言及していません-それは奇妙です。

1つまたは複数のファイルへの書き込み専用アクセスを実際に行っている場合は、常にO_APPEND(または"a")で開いた単一のファイルがおそらく最適です。情報を更新(および追加)している場合は、ロックの問題(同時アクセス、誰が勝つか)が発生します。

ですから、あなたは誰もが決定的な答えを出すのに十分な情報を質問に含めていません。追加したコメントに十分な情報がある場合は、それらのコメントを質問に配置する必要があります(質問を編集し、コメント資料を追加します)。

于 2011-10-21T06:54:25.130 に答える