タグ

ブックマーク / qiita.com/methane (2)

  • 最速最強Webサーバーアーキテクチャ - Qiita

    PyFes 2012.11 発表資料です。 システムコールに焦点を当てて、 meinheld のアーキテクチャを紹介します。 アーキテクチャを説明するために Pure Python でサンプル実装を書いていますが、ちゃんと動くし、HTTPリクエストのパースを端折っているので 10000req/sec 以上出ます。 イベントドリブンのコードでフローが判りにくい場合は python -mtrace -t --ignore-module socket webserver1.py などのようにトレースしながら実行するといいでしょう。 前提 今日は、シンプルなレスポンスを返すだけの条件でをひたすら req/sec を追求する話をします。 たとえば、 nginx の lua モジュールで "hello" と返すだけとかです。 静的ファイルを配信するサーバーとかだともっと別のことも考えないといけません。

    最速最強Webサーバーアーキテクチャ - Qiita
    Hash
    Hash 2012/11/28
    自分でHTTPサーバを実装するお勉強的な側面もコミでなぞりたい
  • すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita

    ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末

    すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita
  • 1