タグ

IOとperlに関するgfxのブックマーク (3)

  • AnyEvent::AIOをとりあえず試す - D-6 [相変わらず根無し]

    AnyEvent::AIOをとりあえず試す まだこう、細かいpros/consがわからないのでなんとも言えないんだけど、とりあえずaio_open/aio_writeと普通のopen/print/closeで同じ事した場合とでベンチマークとか取ってみた。これでいいのかなー 環境はMac OS X 10.5.8, 2.4 GHz Intel Core 2 Duo, 4GM RAM. Comparing with buffer size 10... Rate normal aio normal 80.0/s -- -19% aio 99.0/s 24% -- Comparing with buffer size 100... Rate normal aio normal 80.0/s -- -18% aio 97.1/s 21% -- Comparing with buffer size 1

    gfx
    gfx 2010/03/12
  • 安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか - kazuhoのメモ置き場

    間違ってたらツッコミお願いします。 ext4 が出たタイミングで話題になったことだけど、(ext4 に関係なく一般論として) ファイルを安全に書き換えるためには、いくつかの手順を踏む必要がある。で、Perl だとだいたい以下のようになる。 # 1) 適当なテンポラリファイル名 (格納先と同ディレクトリ) my $newfn = "tmp.$$"; # 2) ファイルを書いて fsync open my $fh, '>', $newfn or die "failed to open file:$newfn:$!"; print $fh $data; IO::Handle::flush($fh); or die "flush failed:$!"; IO::Handle::sync($fh); or die "fsync failed:$!"; close $fh; # 3) 古いファイルを別

    安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか - kazuhoのメモ置き場
  • 安全にファイルを読み書きする - Perl入門ゼミ

    Perl › ファイル入出力 › here ファイルを読み込んで同じファイルに書き込むときは、読み書きできるオープンモード "+<" を指定して、書き戻すことは非常に危険です。もし書きこんでいる最中にシステムがクラッシュすると、ファイルが破損して復元することができなくなるからです。 安全に書き込みを行うためには、いったん新しいファイルに書き込んでから、ファイル名を元のファイル名に変更することで上書きするようにします。 以下は、安全な読み書きをするためのサンプルです。エラーチェックをしっかり行う必要があります。 use strict; use warnings; # ファイル名を変更するために使用する。 use File::Copy; # 編集して書き戻すので指定するファイルは注意してください。 my $infile = shift; # 一時ファイル。他のプロセスとなるべく # 重ならない

    安全にファイルを読み書きする - Perl入門ゼミ
    gfx
    gfx 2008/08/11
  • 1