2007-05-01から1ヶ月間の記事一覧

HTTPS のベンチマーク

ふと思い立って ApacheBench(ab) を使って https のベンチマークを取ってみたのだが、なんだかやたらと遅い。Athlon64 X2 4200 の Apache-2.2 で、60 req/sec ぐらい。 これは遅すぎだろ、とよく見たらクライアント側の ab が CPU を 100% 使っていた。サー…

Erlang で分散 ApacheBench もどき

書いてみた。どうも綺麗に書けてる気がしないのだが。(関数型の書き方に慣れてないのか……) ソースコードは末尾に。HTTP のリクエストを並列に投げる部分はこんな感じで。 worker(): manager から URI を受け取って http:request()、結果を manager に戻す ma…

RBridge::Erlang を Perl から呼ぶ

とりあえず、はじめてのErlanモジュール作成ということで悩んだ結果、RubyからErlangのメソッドを呼び出すRBridge::Erlangを作った。 http://rakuto.blogspot.com/2007/05/ruby-and-erlang-rbridgeerlang.html Young risk taker.: [Ruby and Erlang] そろそ…

IPアドレスから携帯キャリア判別のベンチマーク

Net::CIDR::MobileJPと、PostgreSQL の inet で速度を比べてみる。 PostgreSQLのinet型を使って、IPアドレスから携帯のキャリアを判定してみます。 http://www.mono-space.net/blog/pgsql/e070511_ipaddress.htm 元ネタは net-cidr-mobilejp-scraper.pl で抽…

NaN を数値比較

NaN という文字列を で比較すると -1, 0, 1 ではなくて undef が返るというお話。(v5.8.8 built for i386-linux-thread-multi)ことの発端は、DBD::CSV で ORDER BY するとエラー、という現象。 id,foo 1,FOO 2,BAR 3,NaN例えばこんなのを foo で ORDER BY で…

Erlangでたらい回し 遅延評価版

closure を使えば遅延評価できるとな。 λ萌え - たらいを後回し 実は、closureをサポートしている言語であれば、遅延評価は可能だったりする。明示的にやらなければならないものの、それを明示するのは実に簡単だ。 まず、遅延評価したい値は、ただclosureで…

Erlangでたらい回し

まずは普通に。 -module(tak). -compile(export_all). tak( X, Y, Z ) -> if X =< Y -> Y; true -> tak( tak( X-1, Y, Z ), tak( Y-1, Z, X ), tak( Z-1, X, Y ) ) end. bench( X, Y, Z ) -> { Time, Ans } = timer:tc(?MODULE, tak, [X, Y, Z]), io:format(…

erlang で書かれた Wiki

Erlangで書かれたWiki - スコトプリゴニエフスク通信 から http://www.sics.se/~joe/tutorials/wiki/wiki.html を見て、とりあえず動かしてみんだけど、 $ ab -c 10 -n 10000 "http://localhost:4992/wiki/showPage?node=home" Requests per second: 1650.08…

erlang で並列 HTTP request

まだ erlang の基礎もロクに勉強してないというのに、単に面白そうだから、という理由で並列プログラミングに手を出してみた。 HTTP get を複数の URL に対して並列で発行する。全体の構造は以下のようなもので。 main manager プロセスを作成 引数で受けた …

FizzBuzz

erlang 初めて書いた。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 http://www.aoky.net/articles/jeff_at…