助けてください問題が解決できない、ハードウェアの限界にぶつかる - ページ 18

 

テストスクリプトと実行結果。

HDDです。

2014.08.22 21:16:43.584 sTest_ReadWriteBIN EURUSD,M1: 100000 secuences writed in 39.8 sec
2014.08.22 21:17:24.174 sTest_ReadWriteBIN EURUSD,M1: 4156 Mb loaded in 40.0 sec (103.9 MB/sec)

RAMドライブ。

2014.08.22 21:22:15.170 sTest_ReadWriteBIN EURUSD,H1: 100000 secuences writown in 27.6 sec.
2014.08.22 21:22:42.805 sTest_ReadWriteBIN EURUSD,H1: 27.6 秒で 4158 Mb をロード(150.4 MB/秒)

それでも印象に残らない。確かに、今はパソコンでいろいろなものが動いていて、テスト環境はクリーンとは言えませんね。

後でまたやります。

ファイル:
 
komposter:
読み取りをWinAPIアナログに交換すれば、RAMディスクで少なくとも2〜3倍の速度向上が得られると思われます
 
komposter:

TheXpert:
ちなみに、各シーケンスの起点がわかっていれば、取引は時間順に並んでいるので、バイナリサーチで目的の日付を検索することが可能です。

+1、アイデアありがとうございます。

補間探索を適用することも可能で、このタスクではおそらくさらに高速に動作することでしょう。
 
TheXpert:
WinAPIアナログで読み込みを代用して、RAMディスクで少なくとも2-3倍の速度向上が得られると思われます。

FileOpenだけが 遅く、読み込みは速いはずです。でも、確認します。

anonymous:
また、補間探索を適用することも可能で、このタスクではさらに高速になる可能性が高いです。

かっこいい、ありがとう。

 
komposter:
...

それでも印象に残らない。

...

C++では、64K-128Kバッファへのfreadで行われます。sscanf-typesは非常に遅いので、独自のパーサーでパースするのがよいでしょう。
 
kazakov.v:
C++では、これは64K-128Kバッファへのfreadで行われます。sscanfsは非常に遅いので、パースはあなた自身のパーサーで行った方がよいでしょう。

C++では、パーサがなくてもできる場合。

このアイデアを10回繰り返すと、別のファイルのシーケンスの開始位置の値で別のファイルを起動し、シーケンス構造にトランザクション 数を格納する必要さえなくなります。

 
marketeer:
この問題はかなり学術的であり(プログラマーを雇うための問題のようだ)、多くの人が興味を示しているので、入力データの記述形式をもっと厳密に定式化して、全員が20ギガのテストデータを生成して、その実用解を提出してはどうだろう。

+100

この作業は自明ではありませんが、まだコードは一行もありません。アンドレイ ここにいる多くの人が興味を持っています。スポーツ番組を持とう

 
C-4:

+100

この作業は自明ではありませんが、まだコードは一行もありません。アンドレイ ここにいる多くの人が興味を持っています。スポーツ番組を作ろう

課題はすでに設定されている。
 
Vinin:
課題はすでに設定されている。
テストデータ+擬似コード、データ処理の一般原則が必要。
 
なぜ、データベースから選択肢を選んでいくのか。 条件に応じて履歴から案件を生成したほうがいいのではないか。