2009年9月アーカイブ

WEB+DB PRESSの連載と被っている件について
松信さんがやってくれまし(ry


特に参考になったのは、7章からの後半、パフォーマンス、インデックスチューニング、メモリやファイルシステムの話題です。
奥一穂さんも言っている通り、ここまでデータベースのパフォーマンスに関して、ハードウェアからアプリケーションまで幅広く体系的に書かれている書物はいままでなかなかなかったのではないでしょうか。

データベースを管理するエンジニアだけではなく、データベースを使う全てのエンジニアにお勧めな本です。

参考: 「Linux-DBシステム構築/運用入門」がすごい - あなたのシステム、ガラパゴス化していませんか?
Open database life: 新書籍「Linux-DBシステム構築/運用入門」

PS. 弊社エンジニア関係者の方へ。P193を見て下しあ。

YAPC::Asia 2009で大規模画像配信とPerlについて発表しました。
会社のブログの方に資料公開しましたので、
このブログでも紹介です

一部パワポのアニメーション機能使っている部分が抜けていますので 会社ブログの方で公開しているPPTファイルも参照して頂けると幸いです

資料の中で、Image::Magickのベンチマークをしているのですが、その際画像サイズの変更のアルゴリズムについては触れていませんでした。
確かに画質は悪くなりますが、変換のアルゴリズムを変更するとスピードがあがります。
ImageMagickの画像の拡大縮小のアルゴリズムについては以下のページが参考になります。
りゃくえふ » Blog Archive » ImageMagickの画像の縮小

しかし実際、Image::Magickが重たいのは画像loadの時です。
Image::MagickのReadだけと、Imlib2で画像を縮小したときのベンチマークをしてみます。

timethese(
    100 => {
        imagemagick => sub {
            my $img = Image::Magick->new($orig_width, $orig_height);
            my $x = $img->Read($srcfile);
            die "$x" if $x;
        },
        "imlib2" => sub {
            my $im = Image::Imlib2->load( $srcfile );
            my $im2 = $im->create_scaled_image($width, $height);
            $im2->set_quality(85);
            $im2->save('imlib2.jpg');
        }
    }
);

結果は、

Benchmark: timing 100 iterations of imagemagick_load, imlib2...
imagemagick:  3 wallclock secs ( 2.38 usr +  0.05 sys =  2.43 CPU) @ 41.15/s (n=100)
imlib2:  2 wallclock secs ( 2.38 usr +  0.06 sys =  2.44 CPU) @ 40.98/s (n=100)

なんと、ほぼ同じ。
Image::Magickは画像を読み込んだ際に様々な処理を行っているからこのような速度の差になるんでしょうね。

ということで、画像のライブラリは適材適所で選択しませう。

R0011798.JPG

子供も生まれて7ヶ月半超えました。 ここまであっと言う間という感じ。

寝返りから元に戻ることはまだできませんが、最近、うつぶせの状態から、体を持ち上げて、はいはいの姿勢をとることができるようになりました。ただしまだ進行方向が後ろ。

チラシとか渡すと、本当に真剣な顔で紙がしわしわになるまで遊んでる。 持ち替えていろいろな角度から見たり、引っ張ったり、舐めたり(紙はだめ)、いろいろ試してみて健やかなハッカーとして育ってほしい。