解決するには以下の問題があります。膨大なデータセットを表示するには、グラフビューアを構築する必要があります。*リアルタイムでディスク上のファイルからデータにアクセスする*
実験の結果を表す何百万ものレコードを持つ特定の形式のファイルがあります。各レコードは、大きなグラフプロット上のサンプルポイントを表します。私が見た最大のファイルは4370万レコードです。
平均ファイルには1000万レコードが含まれています。各レコードは小さい(76バイト+オプションでそれぞれ12バイト)。完全なデータは、大きすぎるためメインメモリにロードすることはできません。私はレコードごとに48バイトにデータを圧縮し、お互いに関連付けられているチャンクにデータを編成する新しいファイル形式を構築しました。私は、2D/3Dプロットでレコードを表示することによってデータを「表示」する必要があります。データが非常に密集しているので、より多くのデータをロードし、ビューに表示されていないデータをメインメモリから削除することによって、詳細レベルを徐々に増やしたいと思います。
関連するレコードのグループにリアルタイムでアクセスして同様のレコードを事前ロードして、ローディング時間を最小限に抑えることもできます。これにより、非常に遅いインターネット接続でYouTubeでビデオを見るのと同じような経験ではなく、データを見るためのスムーズなコントロールが可能になります。ユーザーはランダムに操作することはできませんし、コントロールを使用してナビゲートする必要があります。この情報を使用して、関連するレコードをメインメモリにロードします。
データは、現在メインメモリにあるものに基づいてディスクから徐々にロードする必要があります。現在のコンテキストで必須ではないメインメモリ内のレコードを削除し、必要に応じて再ロードすることができます。
は、どのように私はいくつかのハッシュ番号データは、現在のコンテキストで表示される場合、私は、メインメモリを管理しませんが大きすぎるどのよう
に基づいて、高速でディスクからデータにアクセスします。あなたの答えが詳細レベルであれば、大きなデータセット用にどのように構築すればいいのですか?このデータはファイルの一部であるべきですか?
私はこの2週間、この作業に取り組んでおり、IOスピードが原因で固まっているようです。
私はネイティブC++で作業しています。私はGPLで仕事をすることはできません。それ以上の情報が必要な場合は、私に知らせてください。あなたはファイルをメモリにマッピングすることができ、最も近代的なファイルシステム(Linuxでは、Unixでは、Windowsの場合)の下
ラム
また、私はファイルフォーマットを変更し、自分の好みに合わせてデータを整理することができます。私はOpenGLを使ってデータを見る。 – Ram
このデータをデータベースに移植することを検討しましたか?まともなデータベースなら、これらの問題をすべて解決することができます。PostgeSQLには、役に立つ拡張が表示されるグラフもあります – Swiss