Qtに関する記事やC++でのファイルを書いた記事はすでに見つかりましたが、既存のメソッドと「Qtでファイルを書き込む最速のメソッドは何ですか?」という質問に対する満足のいく回答は見つかりませんでした。Qt - 書き込み速度 - Qtでファイルを書き込む最も速い方法は何ですか?
タスク: ファイルにファイルするために、二重の値(約500.000から1.000.000まで)を一括して書く必要があります。プログラムの構造上、この値はいくつかのQVector(すべてのQVectorが同じサイズ)を含むQListに保存されます。 QVectorsには2つの値が含まれています。さらに、各列(各QList要素は列)は異なる精度で書き込まなければなりません。各列は\ tで区切られています。 ::
をFWRITE <
- QTextStream: は、私はいくつかの方法を試してみました私はQTextStreamとFILEを使ってfwrite(ほぼ同じ速度)を使って最良の結果を得ました.QFile :: QFileは少し遅くて(たぶん30%)でした。
しかし、私はまだもっと速い方法が必要だと思います。私のPC(Core2Duo)は、2倍の値を500.000倍にすると、かなり長くなります。
私はBoost Karma C++ Libraryを使用することも考えました - それをお勧めできますか? http://www.boost.org/doc/libs/1_51_0/libs/spirit/doc/html/spirit/karma.html
あなたは絶対にテキストとして書き込む必要がありますか?倍精度文字をテキストに変換することは、かなりのボトルネックになります。 – paddy
パフォーマンスを本当に気にするなら、QTコンテナは動かないので、 'QList'と' QVector'を 'std :: vector'で置き換えることから始めるべきでしょう。それが不可能な場合は、キャッシュの動作を改善するために少なくとも 'QList 'を' QVector'に置き換える必要があります。 – Corristo
メモ:[QSaveFile](http://doc.qt.io/qt-5/qsavefile.html) – TheDarkKnight