タグ

ブックマーク / blog.mikage.to (5)

  • ErlangなWebサーバyawsを速くする方法 - みかログ

    Erlangで書かれたyawsがある. 一般的なWebサーバの機能の他,HTMLにErlangで書かれたコードを埋め込んで動的に処理させることが出来るようになっている.(JSPやPHPのように) このWebサーバは,サーバのコードがほぼすべてErlangで書かれているのだけども,十分な処理速度を持っている. Erlangベースということで,接続数に対しても十分スケールするので,動的コンテンツの環境としてはなかなか優秀. しかし,デフォルトでは Erlang VM をそのままの状態で利用するため,最近のSMP・マルチコア環境では性能を十分発揮できない. 以下の2つのことをすれば,それだけでかなり性能を上げることが出来る. 1.SMP・マルチコア環境では,yaws を実行する Erlang 環境に,-smp オプションを渡す(-erlarg '-smp') 2.yaws体を,HiPEでコンパ

    ErlangなWebサーバyawsを速くする方法 - みかログ
    zee8
    zee8 2007/07/05
  • Erlangのデータ保存方法の速度比較 - みかログ

    zee8
    zee8 2007/05/11
  • Erlangは関数型だけど難しくない - みかログ

    Erlangで簡単なアプリまで書けるくらいになったので,感想を. 関数型言語というと,Lisp,Haskellなどがあって,どれも難しいイメージ. Erlangもはじめは結構覚えるの大変かなぁという印象があった. Lispは括弧だらけでまず見た目から拒否反応が起こる. HaskellはふつうのHaskellとか読んでみたけど,遅延評価やモナドがやはり難しいイメージ. 今までのように,書いた順番に実行されるという点が違ったり,デバッグするときに好きなときにprint入れたり出来ないのは,やっぱりかなり影響が大きい. ※追記:unsafePerformIOって関数で無理矢理printさせたりできるらしい.危険らしいけど(^^; その点,Erlangはそういう難しさが全くなかった. 書いた順番に普通に実行されるし,副作用がどうとか気にする必要も無し. エラー時は(見にくいけど)スタックトレースが

    Erlangは関数型だけど難しくない - みかログ
    zee8
    zee8 2007/05/10
  • みかログ: ErlangでComet

    ErlangでCometしてみた. (iframe方式は結局だめそうなので,Cometに) Comet チャットサンプル 実装はきわめて手抜きです.あくまでサンプルとして. ソース: chat.erl (22行.etsテーブルの初期化) chat.yaws (72行.サーバ側の実装) index.html (52行.HTML+JS) ※別途jqueryが必要 こんだけ短いソースでも,ちゃんとCometできるし,C10Kにも対応できる.(問題はいろいろあるコードだけど) いろいろちゃんと実装したとしても,かなりシンプルに仕上がると思う. Comet の正しい使い方で紹介されているプログラミングモデルのどれにも当てはまらない新しい方式,といえるかも. Cometのために特殊な実装をする必要もないし,I/O多重化など実装がめんどくさい手法を使う必要もない. 普通に各リクエストの処理を書いて,新規

  • チャットをCometより楽に実装する方法 - みかログ

    JavaScriptベースのチャットを作るとき,Cometを使うのが一般的とされているようだけど,もっと楽な方法でも良さそうに思える. Cometでは1回リクエストを受け取るたびにコネクションを切断しているので,Keep-aliveなどと併用しなければならない. 実際に都度TCP接続を張り直すとコストが大きいので,Keep-Aliveを併用したりする必要があるものの,それも色々裏技的な回避をしないとだめな模様. (Cometの正しい使い方を参照) でも,チャットを実装する上では,都度コネクションを切断する必要がなさそうに思える. iframeで別のページを読み込み,その中で script タグを使って親フレームを更新するだけではダメなのだろうか. この方法であれば, ・Cometのように,切断してから再接続するまでのタイムラグがないので,サーバ側の余計な処理が減る.(切断中に届いたメッセー

    チャットをCometより楽に実装する方法 - みかログ
    zee8
    zee8 2007/05/01
  • 1