Entries from 2009-01-01 to 1 month

Google の各国ドメインを一覧にするワンライナー

$ curl http://www.google.com/language_tools 2> /dev/null | perl -MList::MoreUtils=apply -le 'apply { s{a\s+href="http://(?:www\.|)(google\.[a-z\.]+)/?"}{print $1}eg } (<STDIN>)' | sort | uniq google.ad google.ae google.am ...id:kdaiba++</stdin>

はやいTCPサーバを書く際に忘れがちなこと

はやいTCPサーバの書き方 - nyaxtのPC作業ログ で id:nyaxt さんが書いてらっしゃるように、 epoll や kqueue を使う TCP_NODELAY, TCP_DEFER_ACCEPT *1 等を活用する TCP パケットを意識する I/O システムコールの回数を最小にする sendfile といったあたり…

Mac OS X のメモリ管理

ドライバも仮想メモリ空間で動作 DMA する際とか明示的にアドレス変換が必要 TLB cache のクリアコストとかどういう風に設計してるのか Mac OS X のドライバ色々書いた感想 - kazuhoのメモ置き場 の件、O'Reilly Media - Technology and Business Training …

Re はやいTCPサーバの書き方

はやいTCPサーバの書き方 - nyaxtのPC作業ログ について、いくつか気になった点があったので。 Nagleアルゴリズムは、相手側のACK送信をまとめてくれるものです。これは、下記の様にアプリケーション側でパケットを意識した処理を行っている場合、邪魔になる…

「ループは -1 まで回せ」

元の話題は int vs size_t problem のあたり。符号なし型の減算ループをどう書くかという話。実は、一定数までカウントアップするよりも 0 を通り過ぎるまでカウントダウンする方が速度とコードサイズの両面で良い、ってのは最適化の定石だと思ってました。…

Mac OS X のドライバ色々書いた感想

年をはさんで Mac OS X のドライバをいろいろ書いたりいじったりしたわけですが、感想。 イベントドライバをマルチスレッドで書けるのは、とても楽 while ループで待ち受けとか IODelay (IOKit 内の sleep) はビジーループってことになってるけど、他スレッ…