[ruby-trunk - Bug #5585][Open] windowsでファイルへの書き込みが異様に遅い

Issue #5585 has been reported by Akio T…


Bug #5585: windowsでファイルへの書き込みが異様に遅い

Author: Akio T.
Status: Open
Priority: Normal
Assignee: Usaku NAKAMURA
Category: core
Target version: 2.0.0
ruby -v: ruby 1.9.3p0 (2011-10-30) [x64-mswin64_100]

r31901の修正により、io_binwriteの呼び出しの都度呼び出されるio_fflush内でfsyncがかかり、ファイルへの書き込みが極度に遅くなります。
(ruby-1.9.3-p0も同様)

Issue #5585 has been updated by Usaku NAKAMURA.

Status changed from Open to Assigned
Assignee changed from Usaku NAKAMURA to Akio T.

レビュー待ち。

バックポート作業自体はyuguiさんがするのかしら。

Backport #5585: windowsでファイルへの書き込みが異様に遅い

Author: Akio T.
Status: Assigned
Priority: Normal
Assignee: Akio T.
Category:
Target version:

r31901の修正により、io_binwriteの呼び出しの都度呼び出されるio_fflush内でfsyncがかかり、ファイルへの書き込みが極度に遅くなります。
(ruby-1.9.3-p0も同様)

Issue #5585 has been updated by Akio T…

File io.c.patch added

trunkの修正を元にした添付パッチの以下について確認しました。
・io.cで問題となっている箇所からのfsyncの除去と、rb_io_flushおよびrb_io_rewindへのfsyncの追加
・ioのテストのパス
・100MBファイルの書き込みがそれほど遅くないこと
・x64-mswin64で[ruby-list:48515]のスクリプトで以下を得ました。
Write:1.639093(s)
Read :1.672095(s)

ステータスとして、「confirmed」とか「reviewed」とかが要るのかな?

Backport #5585: windowsでファイルへの書き込みが異様に遅い

Author: Akio T.
Status: Assigned
Priority: Normal
Assignee: Akio T.
Category:
Target version:

r31901の修正により、io_binwriteの呼び出しの都度呼び出されるio_fflush内でfsyncがかかり、ファイルへの書き込みが極度に遅くなります。
(ruby-1.9.3-p0も同様)

Issue #5585 has been updated by Akio T…

先のエントリの修正:
trunkの修正を元にした添付パッチの以下について確認して、期待した修正であることを確認しました。
・io.cで問題となっている箇所からのfsyncの除去と、rb_io_flushおよびrb_io_rewindへのfsyncの追加→されています。
・ioのテストがパスすること。→パスしました。
・100MBファイルの書き込みがそれほど遅くないこと
・x64-mswin64で[ruby-list:48515]のスクリプトで以下を得ました。
Write:1.639093(s)
Read :1.672095(s)
これは、パッチ前のWriteの所要時間(約180秒)から大幅な向上です。

Backport #5585: windowsでファイルへの書き込みが異様に遅い

Author: Akio T.
Status: Assigned
Priority: Normal
Assignee: Akio T.
Category:
Target version:

r31901の修正により、io_binwriteの呼び出しの都度呼び出されるio_fflush内でfsyncがかかり、ファイルへの書き込みが極度に遅くなります。
(ruby-1.9.3-p0も同様)