問題タブ [large-data-volumes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - 効率的なファイルI/Oと文字列からフロートへの変換
巨大な(数ギガバイトの)ASCIIテキストファイルがあり、行ごとに読み取り、特定の列を浮動小数点に変換し、これらの数値に対していくつかの簡単な操作を行う必要があります。それはかなり簡単なことですが、それを全体的にスピードアップする方法がなければならないと私は考えています。このプログラムは、I / Oの待機に非常に多くの時間を費やすため、CPUコアの100%に相当するものを使用することはありません。同時に、I / Oの代わりに計算を行うのに十分な時間を費やしているため、rawディスクI / Oは約8〜10MB/秒しか実行されません。私のハードドライブはそれよりもはるかに優れているのを見てきました。
I / Oと処理を別々のスレッドで行うと役立つでしょうか?もしそうなら、これを実装する効率的な方法は何ですか?重要な問題は、私がボトルネックにならないように、各行を保持するためのメモリ割り当てをどうするかです。
編集:私は現在、Dプログラミング言語、バージョン2の標準ライブラリ、主に高レベルの関数を使用しています。std.stdio.Fileで使用されるバッファサイズは16KBです。
wpf - ソートされた大きなリストをWPFですばやく表示しますか?
私は、内容が変更されたときに再利用する必要のあるデータの長い(最大500項目)リストを表示できるはずのプログラムを開発しています。
基本的に、私は、ListViewに表示されるGUIにバインドされた監視可能なデータを持つクラスを含む監視可能なコレクションを持つビューモデルを持っています。
データはソートする必要がありますが、データもいつでも変更される可能性があり、リストは毎回再分類する必要があります。
GUIをロックせずにすべてを表示および維持するための最良のメカニズム/メタファーは何ですか?NotifyCollectionChangedEventArgsといくつかの並べ替え関数を使用した解決策がありますが、その速度は遅いです-データ要素が変更されるたびにGUI全体を再構築して再構築すると想定しています。
apache - Apache ログをすばやく処理する
現在、大きな (8.1 GB) アクセス ログ ファイルを処理する awk スクリプトを実行していますが、完了するまでに時間がかかります。20 分で、(1000 +- 500)MB の 14MB を書き込みました。
awk スクリプトは次のとおりです。
編集:
awker 以外の場合、スクリプトは各行を読み取り、日付情報を取得し、それをユーティリティdate
が認識する形式に変更し、それを呼び出して 1970 年からの秒数として日付を表し、最終的にそれを .csv ファイルの行として返します。 、IP とともに。
入力例: 189.5.56.113 - - [2010/01/22:05:54:55 +0100] "GET (...)"
返される出力: 189.5.56.113,124237889
visualization - 3D 点群データセットにラベルを付けるためのコマンド ライン スクリプトまたはソフトウェア ツール
3D 点群データセットにラベルを付けるにはどうすればよいですか? x、y、z 値を含むテキスト ファイルを読み込んで視覚化し、ラベルを付けることができるソフトウェアはありますか?
java - Java EE アプリケーションでの大きなレコードの処理
、およびphonenumbers
の 2 つの列を持つテーブルがあります。表には約あります。データベースはです。id
number
half a million entries
MySQL
要件は、そのデータベースに接続された単純な Java EE アプリケーションを開発することです。これにより、ユーザーは特定の URL をたどってすべてのnumber
値をダウンロードできます。comma separated style
すべての値を巨大な形式で取得し、String array
(すべての値の間にコンマを入れて) 形式で連結し、String
それをユーザーに送信すると、適切な解決策に聞こえますか?
アプリケーションは公開されておらず、限られた番号で使用されます。人の。
jdbc - JDBCバッチ挿入OutOfMemoryError
insert()
MySQLデータベースに50万レコードを挿入するためにJDBCバッチを使用しようとしているメソッドを作成しました。
しかし、このメソッドを実行しようとすると、次のエラーが発生します。
に置き換えps.addBatch()
てps.executeUpdate()
削除するとps.executeBatch()
、少し時間がかかりますが、問題なく動作します。この状況でバッチを使用することが適切かどうかを知っているかどうかを教えてください。適切である場合、なぜそれが得られるのOurOfMemoryError
ですか?
ありがとう
.net - 理論上の大量の問題、コレクションを使用して .NET でソートできない
この投稿のタイトルで申し訳ありませんが、これ以上クリエイティブなタイトルが思い浮かびません。
作成者が最新のトランザクション結果を注文しているサードパーティの Web サービスを呼び出しています。合計トランザクション数は 100,000 を超えています。さらに興味深いことに、Web サービスは各トランザクションを表す複雑なオブジェクトを送信します。そのため、一度に 100,000 件すべてを要求すると、タイムアウトが発生します。したがって、一度に 1000 レコードのみを返すには、この Web サービスへの呼び出しをバッチ処理する必要があります。これは、この Web サービスに対する 100 回の個別の呼び出しを意味します。
これまでのところ、トランザクションを古いものから新しいものへと処理する必要があることを除けば、すべて問題ありません。したがって、これらのトランザクションの ID だけを一時的に保持する場所が必要です。これにより、後で正しい順序 (古いものから新しいものへ) で ID を呼び出すことができます。それらを並べ替えた後。
このソリューションに欠けているのは RDBMS です。テキスト ファイルを使用して値を保存することを考えています。
前置きが長くなってすみません。
(1)
- 値をテキスト ファイルに保存するだけでは、テキスト ファイルに 100 000 行を超える行が間違った順序で表示されることになります。つまり、ファイルを下から上に読み取る方法を実装する必要があります。
- 確かではありませんが、パフォーマンスの低下なしに既存のテキスト ファイルの先頭に追加される可能性があります。このように、ファイルが作成されると、組み込みの .net を使用してファイルを上から下に読み取ることができます。
- テキストの odbc ドライバーを接続して、SQL の order by 句を使用することもできますが、これまで行ったことがないため、アプリに展開手順をこれ以上追加したくありません。
- おそらく、テキスト ファイルを使用するのは適切ではありません。私が気付いていないこの問題に対して、より良い解決策があるかもしれません。
これはアーキテクチャ/ロジスティクスに関する質問です。ご協力をお願いいたします。
mysql - MySql:複合PKの長いリストを使用して多くの行を操作する
ODBCと接続しているクライアントアプリケーションにキーの長いリストがある場合、MySqlの多くの行を操作するための良い方法は何ですか?
注:私の経験は主にSQL Serverであるため、MySQLだけでなく、少しは知っています。
タスクは9つのテーブルからいくつかの行を削除することですが、5,000以上のキーペアがある可能性があります。
私は、すべてのキーをループして、各テーブルに対して各キーのステートメントを送信する簡単な方法から始めました。たとえば、次のようになります。
ただし、それは45,000の個別のステートメントになりますが、ご想像のとおり、少し遅いです。
では、フロントエンドで使用しているプログラミング言語を気にせずに、リストを送信して、一度に、または少なくとも大量に操作を実行できるようにするための良い方法は何でしょうか。これまでの私の考えは次のとおりです。
一時テーブルを作成して挿入し、結合します。MySQLの構文を調べて一時テーブルを作成しますが、それは良い方法ですか?
一時テーブルを使用すると仮定すると、一時テーブルにデータを入力するための最良の方法は何ですか?5000
/li>INSERT Table VALUES ()
ステートメント?SELECT 123, 456 UNION ALL SELECT 124, 457
?MySqlがテーブルに対して発行されないこの種のSELECTを許可することをテストしました。しかし、リストが長くなりすぎるとSQL Serverが最終的に爆発するので、これはMySQLの良い方法ですか?リストを一度に数百に保つ必要がありますか?XML。MySQL 5.1にはいくつかのXML関数があるようですが、大まかな検索では、XMLテキストのチャンクを結合する行セットに変換することをサポートしていないようです。本当?値をXMLに取り込むのは非常に簡単です。
仮想分割操作。MySqlには、ある種の手続き型言語が可能であると思います。SQL Serverでは、文字列を解析して行セットに変換するカスタムコードを記述できます。
/li>
私はMySQLに慣れていないので、最初に調査する可能性が本当にわかりません。悪い決断をしたり、難しい方法を学んだりするのを防ぐために、助けていただければ幸いです。
database - 膨大な量のデータを管理するための最適なデータベース ソリューション
各町 24 時間で 10 分間に異なる町 (8 つの町) 2 MB からのデータを含む交通データベースを設計する必要があります。受信データはすべてのタウンで同じです。だから私の最初の質問は、パフォーマンス面でどちらが優れているかです.多くのテーブルを持つすべての町に1つのデータベースを設計する(町ごとに1つのテーブル)か、それとも多くのデータベースを設計する(町ごとに1つのデータベース)? 2 つ目の質問は、MySQL、Postgres、Oracle など、このシナリオに最適なデータベース管理システムはどれですか?
java - Javaの効率的な重複排除
大きなテキストファイルがあるとしましょう。各行には、電子メールIDとその他の情報(たとえば、製品ID)が含まれています。ファイルに数百万の行があると仮定します。このデータをデータベースにロードする必要があります。データを効率的に重複排除する(つまり、重複を排除する)にはどうすればよいですか?