[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

IOに関するgfxのブックマーク (6)

  • Aio

    1. 非同期 I/O 概説 Introduction to Asynchronous I/O AIO, I/O Multiplexing…

    Aio
    gfx
    gfx 2012/01/10
    sync/asyncとblocking/nonblockingは別の次元の話で、sync-blocking, sync-nonblocking, async-blocking, async-nonblockingの4つの方法があると。なるほど。
  • ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes

    Perl Hackers Hub 第6回 UNIXプログラミングの勘所(2)を読んでいたがよくわからなかったので、Operating System ConceptsやMANなどを読んで一から理解してみる。 Operating System Concepts 作者: Abraham Silberschatz出版社/メーカー: John Wiley & Sons Ltd発売日: 2009/02/13メディア: ペーパーバック購入: 1人 クリック: 39回この商品を含むブログ (4件) を見る open()システムコール The open() system call first searches the system-wide open-file table to see if the file is already in use by another process. If it is, a

    ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes
    gfx
    gfx 2012/01/10
  • 並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です*1。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行*2で、全体の約半分を占めています。 ロジックは残りの半分*3だけで実装されています。 この実例から分かりますが、kumofsのような分散アプリケーションを開発するにはI/O周りの実装が大変で、とてつもなく大きな障壁になっています。*4 さらに今日では、性能を稼ぐためにマルチスレッド化が必須です。また、多数のクライアントを少ないリソースで効率よく相手にするには、非同期・イベント駆動型のアーキテクチャも必要になります。さらに、究極的な性能を達成すべく GC を利用しない C++ においては、実装のみならず設計も大変です。 これに加えてソケットAPIの難解な挙動に対処にしなければならないため、C言語やC++によるネットワークプログラミングは、vimの使いこなしなどと同

    並列イベント駆動I/Oフレームワーク「mpio」リリース - Blog by Sadayuki Furuhashi
  • 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