タグ

blanketskyのブックマーク (946)

  • poll/epoll/kqueueを任意に切り替えられるコード - Blog by Sadayuki Furuhashi

    ネットワークで通信するプログラムを書いていると、ファイルディスクリプタ(ネットワークならソケット)をselectやpollで監視して、パケットが届いたら何かする、ということが良くあります。 しかしselectやpollは、*BSD で kqueue・kevent を使ってみようで書かれているように、どうも遅いらしい。C10K問題が取りざたされている昨今、Linuxにはepoll、BSDにはkqueue、Solarisには/dev/pollというより高速な仕組みが用意されているのですが、epollを使ってしまうとLinuxでしか動かないし、kqueueで書くとBSDでしか動かない。 というわけで、epollもkqueueも同じインターフェースで使えて、#defineで簡単に中身を切り替えられると嬉しい、とは誰しも一度は思うはず。そうに違いない。 もちろん先人も同じことを考えており、libev

    poll/epoll/kqueueを任意に切り替えられるコード - Blog by Sadayuki Furuhashi
  • はやいTCPサーバを書く際に忘れがちなこと - kazuhoのメモ置き場

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ で id:nyaxt さんが書いてらっしゃるように、 epoll や kqueue を使う TCP_NODELAY, TCP_DEFER_ACCEPT *1 等を活用する TCP パケットを意識する I/O システムコールの回数を最小にする sendfile といったあたりは、確実にやるべきことだと思います。一方で、TCP 関連以外のオーバーヘッドが実は結構あって、 接続のタイムアウト処理 ログの出力 メモリの確保や解放をやらない あたりにも気を配る必要がある、と思います。 接続のタイムアウト処理については、以前 Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件 に書いたように、ビットアレイのリングバッファを使うのがベストだと思います。 ログの出力について、複数行を1回のシステムコールにまとめてもいいかど

    はやいTCPサーバを書く際に忘れがちなこと - kazuhoのメモ置き場
  • 「ループは -1 まで回せ」 - kazuhoのメモ置き場

    元の話題は int vs size_t problem のあたり。符号なし型の減算ループをどう書くかという話。 実は、一定数までカウントアップするよりも 0 を通り過ぎるまでカウントダウンする方が速度とコードサイズの両面で良い、ってのは最適化の定石だと思ってました。特にアセンブリレベルでは。 自分が使ってた 68000 だと、ずばり、「レジスタの値をデクリメントして -1 じゃなければジャンプ」という DBRA 命令がある (しかも速い) し、x86 でも、 loop: ... subl $1, %esi jns loopみたいな形で、カウンタが符号なし型であっても高速なループが書けるんじゃないかと。 でもそういえば Metrowerks のコンパイラはこの最適化をしてくれなかったような気がするけど GCC (4.0.1 (Apple Inc. build 5465)) だとどうなんだろと

    「ループは -1 まで回せ」 - kazuhoのメモ置き場
    blanketsky
    blanketsky 2009/01/19
    optimization
  • FrontPage - Linuxカーネルメモ

    Linux Kernel(2.6)の実装に関するメモ書き 書き殴っているので書き方/内容にムラあり。 3.6系に関する記述は【3.6】と記載。 カーネル プロセス プロセスのBlockとWakeup プロセスの優先度 コンテキストスイッチ プリエンプション スケジューラ RunQueue WaitQueue WorkQueue 例外処理 割り込み処理 ページフォルト ページフォルト - 個々のハンドラ ソフト割り込み システムコール 排他制御関連 モジュール 64bit環境での32bitプロセスの動作 メモリ管理 アドレス空間 アドレス空間の管理 カーネル空間のメモリマップ 64bitでのアドレス空間 HighMemory kmalloc,vmalloc 物理ページ管理 スラブアロケータ Rmap proc/meminfo 空きページの確保 kswapd Swap Swap - Swap領

  • jQuery is a Monad

    It’s said that every Haskell programmer writes their own monad tutorial, and with good reason: once you finally understand the definition and capabilities of a monad, you’ll be eager to try and break the mystique surrounding the concept of monads as a whole. To the outsider, monads are an impenetrable barrier to truly understanding Haskell; they’re cursed with a very unfortunate name, have bizarre

    jQuery is a Monad
  • 博士課程に進学する子供の素質を見極める、たった一つの冴えたやり方

    『あんた、学振に通る見込みあるの?』と聞けば良いです。 まず、学振とは日学術振興会特別研究員のことを指します。 特別研究員制度は、我が国トップクラスの優れた若手研究者に対して、自由な発想のもとに主体的に研究課題等を選びながら研究に専念する機会を与え、研究者の養成・確保を図る制度です。 (特別研究員−日学術振興会) 採用者には年間100万程度の研究費と月額20万の「研究奨励金」という名の給与が与えられます。もし、博士課程1年から採用される特別研究員(DC1)になれたなら3年間で約1,000万円が国から支給される、学生に取っては素晴らしい制度です。 ちなみに、平成20年度のDC1の採用者数は698人です。つまり、最初の問いは以下のものと同義です。 『あんたは全国で700人の中に入る自信があるの?』 それでは息子(娘)の危険な反応について整理していきます。 え、学振ってなに? 修士課程1年の

    博士課程に進学する子供の素質を見極める、たった一つの冴えたやり方
  • すくいぬ 面白い法則や定理なんかを教えて

    2024 02 ≪ 12345678910111213141516171819202122232425262728293031≫ 2024 04 1 名前:以下、名無しにかわりましてVIPがお送りします[] 投稿日:2009/01/14(水) 23:57:10.06 ID:F4O7ShLTO マーフィーとかじゃなく、悪魔の定理みたいなのを語ろう 小話的なのお待ちしとります 2 名前:以下、名無しにかわりましてVIPがお送りします[] 投稿日:2009/01/14(水) 23:58:13.39 ID:TLR6ypBv0 Valquissの定理 バルキスの定理 7 名前:以下、名無しにかわりましてVIPがお送りします[sage] 投稿日:2009/01/15(木) 00:00:24.25 ID:OETTGKkF0 40人のクラスに同じ誕生日の人がいる確率は97%だったっけ? 25 名前:以下、

  • 人工知能のやさしい説明「What's AI」

    人工知能(Artificial Intelligence; AI)について,わかりやすくまとめましたので,どうぞご覧下さい.

  • 査読を依頼されたときに注意すること - Inemuri nezumi diary(2009-01-15)

  • Top 5 Database Research Topics in 2008

    岡野原君が自然言語処理関連で2008年に読んだ論文のベスト5を紹介しています。それに倣って、僕も個人的にインパクトのあった2008年のデータベース研究のベスト5を集めてみました。 Michael J. Cahill, Uwe Röhm and Alan D. Fekete. Serializable Isolation for Snapshot Databases. SIGMOD 2008. (ACM DOI) 真っ先に思い浮かんできたのがこの論文。SIGMOD2008のベストペーパーでもあります。僕自身、トランザクション処理を長く研究していた経験から、Serializability(ディスクのread/writeの順番をあるプロトコルに従って入れ替えても、データベースの検索・更新結果に影響を与えない)を保障しつつ、一秒間あたりに処理できるトランザクションの数(つまりスループット)を上げる

    Top 5 Database Research Topics in 2008
  • 論文ファイブ - d.y.d.

    16:40 09/01/28 インドコンテスト おとといのを読み返してて、 全体として並列並行系多いなーといっておきながら、 個別紹介に1個もそれ系のがなくて面白いなあと思いました。 と、それはともかく、今年もインド発プログラミングコンテストのお知らせが来てました。 ICPCTopCoder系の問題の出る CodeCraft、 Project Euler系の問題の出る MathematiKa、 あと今年はなんだか縛り付きプログラミング(ゴルフとか)系の Time Limit Exceeded というのがあるらしい。毎年恒例行事にするつもりなのかな。 去年のはわりと面白かったので、今年も参加してみるつもり。 23:10 09/01/26 POPL 2009 行ってきました。MS Research 多いなーというのと、 まあ当たり前ですが並列並行系多いなーというのが全体的な感想。 以下印象に

  • 汝は人狼なりや?

    コミックニート 汝は人狼なりや? 第3章キャラ募集 第1章 貴志編(全41話) 第2章 第1話「雄」 第2話「雌」 第3話「夜」 第4話「朝」 第5話「昼」 第6話「焦」 第7話「神」 第8話「隙」 第9話「死」 第10話「夢」 第11話「R」 第12話「黒」 第13話「赤」 第14話「真」 第15話「球」 第16話「重」 第17話「面」 第18話「狼」 第19話「村」 第20話「尾」 第21話「穴」 第22話「問」 第23話「犬」 第24話「始」 第25話「!」 第26話「俺」 第27話「糸」 第28話「手」 第29話「炎」 第30話「罪」 第31話「トラスト」 最終話「敵」 第3章 第1話「enter」 第2話「he」 第3話「forest」 第4話「premiere」 第5話「mask」 第6話「conclusive」 第7話「uneasy」 第8話「tailwind」 第9話「ca

  • brpreiss.com

  • 昨年の論文をふりかえる - DO++

    新年すっかりあけてました。 今年もよろしくお願いします。 年末年始はドタバタして昨年を振り返られなかったのですが、せっかくなので2008年に読んだ論文で私個人のベスト5を以下に列挙してみます。 D. Sontag, et. al. "Tightening LP Relaxations for MAP using Message Passing", UAI 2008 [pdf] Graphical ModelのMAP推定問題で従来解けなかった規模の複雑さの問題を高速にしかも最大であるという保障付きで解けるようにした。書いたメンバーはこの問題に関するオールスターのような感じ。解く問題は、n個の頂点からなるグラフで、各頂点には変数x1...xnがついていて、各頂点と各枝に対し関数gi(xi)、gij(xi,xj)が与えられた時、∑i gi(xi) + ∑ij gij(xi,xj)が最大となるよう

    昨年の論文をふりかえる - DO++
  • mixi Engineers’ Blog » Inside Tokyo Cabinet その弐

    予定を立てた途端にやりたくなくなる症候群に堪えて連載を続けるmikioです(こんな私でもエアーマンくらいは倒せます)。前回はDBMの基について説明しましたが、それを忠実に実装しても実際には使いものにはならないことにも触れました。今回は、実用的なDBMに進化すべく、Tokyo Cabinet(およびその前身のQDBM)で考えた工夫についてお話します。 ハッシュ関数についてもう少し 前回の記事に関して、「ハッシュ関数はビットシフト使って実装した方が早いよ」という旨のお便りをいただきました(ありがとうございます)。まさにその通りで、乗算命令(ここではimull)より左シフト命令(ここではsall)の方が速いみたいです(Intelの資料によると、mulが15から18で、salが4とのこと)。しかし、DBMの場合はファイルI/Oにかかる時間が支配的になるというのが重要な点です。したがって、ハッシュ

    mixi Engineers’ Blog » Inside Tokyo Cabinet その弐
  • Inside Tokyo Cabinet その壱 - mixi engineer blog

    約半年間の沈黙を破ってOSSの世界に戻ってきつつあるmikioです。先日、Tokyo Cabinet(以下「TC」と呼びます)というデータベースライブラリをリリースしました。今回から数回に分けて、TCの設計と苦労話について連載してみます。 DBMとは TCは、いわゆるDBMの系譜のデータベースライブラリで、単純なハッシュテーブルをファイル上で永続化するだけの機能を提供します。DBMはAT&Tの古代UNIXの時代から受け継がれる伝統芸能なのですが、私はそういう枯れた技術が大好きなのです。 プログラマの皆さんは、PerlRubyではハッシュ(連想配列)と呼ばれ、JavaC++ではmapと呼ばれるような、何らかのキーに関連づけてなんらかの値を記録するデータ構造って実によく使いますよね。例えばmixiでは、ユーザアカウントに関連する情報(名前とかニックネームとか)は、ユーザIDをキーにしたハッ

    Inside Tokyo Cabinet その壱 - mixi engineer blog
  • M+ と IPAフォントの合成フォント

    ホーム フォント紹介 M+フォントは高品質デザインでぜひ日常的に使いたいのですが、漢字がたりない‥‥そこでIPAゴシックから漢字を補完しました。どなたでも無料でお使いになれます。 2020-04-15Clampフォントを修正しました。詳細は変更履歴をご参照ください。 2020-03-07MigMix/Miguフォントをバージョンアップしました。変更点「M+ TESTFLIGHT 063a に同期」「Clampフォントを追加」など‥。詳細は変更履歴をご参照ください。 2015-07-12MigMix/Miguフォントをバージョンアップしました。変更点「M+ TESTFLIGHT 060に同期」など‥。詳細は変更履歴をご参照ください。 Webサイトをスマートフォン対応しました。画像をSVGにしたのでページを拡大表示すると(PCの場合Webブラウザの横幅を変えると)一部画像を大きく見ることが可能

    M+ と IPAフォントの合成フォント
  • python での線形代数

    python での行列・ベクトル数値計算 python で行列ベクトル演算が可能です。でも、実際に行列ベクトル計算をしようとしたとき戸惑わされました。python での行列ベクトル演算について手頃な解説がありませんでした。コード例も殆どなく、試行錯誤で使う必要がありました。回り道をしました。特に Matrix と array の使い分けに戸惑いました。結論は「慣れるまでは Matrix を使わずに array の範囲だけで使っとけ。」です。慣れた後でも Matrix を使うメリットは限られます。array だけで済ましたほうが余分なことを考えずに済みます。 このような遠回りをすることなく python での数値計算を手っ取り早く始められるようにように、この Web page を書きました。C 言語や数値計算についての素養はあるが python は使い始めの方、早急に行列 ベクトル演算を行う

  • MD5 considered harmful today

    Creating a rogue CA certificate Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger [Dec. 31, 2008] Responses from Verisign (RapidSSL), Microsoft and Mozilla. [Jan. 2, 2009] Responses from TC TrustCenter and RSA, and a US-CERT Vulnerability Note. [Jan. 8, 2009] Video and audio files of the 25C3 presentation are available from CCC. [Jan. 15,

  • セキュリティ関連 RFC:IPA 独立行政法人 情報処理推進機構

    IPA/ISEC(独立行政法人 情報処理推進機構 セキュリティセンター)は、インターネットセキュリティに関する重要な RFC(Request for Comments)を日語に翻訳して提供しています。 RFC は、IETF (Internet Engineering Task Force) におけるインターネットコミュニティの標準等の検討が公表される一連の文書であり、1969年に発行され始めました。それらの内容としては、インターネット標準の仕様のみならず、現時点における最善の実践(BCP)、FYI(For Your Information)を含む情報提供、実験的なもの、および、歴史的なものがあり、広範にわたります。原文は、英語で記述されています。 この目的は、 「ベンダーによるインターネットセキュリティ機能の実装を促進すること」および「ユーザのインターネットセキュリティについての認識を向