2016-12-14 17 views
0

私は16 mbのテキストファイルを処理するデータマイニングC#プロジェクトに取り組んでいます。実行時にファイルを処理する必要があります。ユーザーがファイルを選択した後、プログラムはそれらを1つずつロードし、キーワードを検索し、オブジェクトに分割します。したがって、プログラムには約50個のオブジェクトがあり、それぞれ約10 MBで約500 MBのRAMがあります。実行時に大きなオブジェクトを処理する方法

私はこれらのオブジェクトを一度にすべて必要としないので、それらをRAMの外に保存し、必要なものをロードする必要があります。

この状況を処理するにはどうすればよいですか?

答えて

0

私はあなたがそれらを保持したい場合にユーザーがファイルを選択した後にデータベースにすべてのファイルを保存する必要があると思います。その後、処理の問題に対処できます。例:

ファイルを解析し、そのファイルから情報を抽出する場合。間違いなくANTLRの使用を検討する必要があります。 AST(Abstract Syntax Tree)より上のすべての操作を実行する。そして、テキストの構造を知っていれば、文法を定義し、AST全体をファイルから読み込むことができます。あなたがテキストの上だけの単純な検索をしようとしている場合は

は、Knuth–Morris–Pratt algorithmを指すようにしようとか、Trie

を使用し、パフォーマンスのために、代わりに通常の文字列クラス

のStringBuilderを使用してみてください
関連する問題