タグ

Perlとperlに関するhiroyukimのブックマーク (48)

  • 第2回 AnyEventでイベント駆動プログラミング (1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。第2回は、Japan Perl Association代表理事の牧大輔さんで、テーマはAnyEventです。 はじめに 昨今のPerl界で最も熱い話題がイベント駆動プログラミングです。イベント駆動プログラミングはいわゆる「リアルタイムWeb」などと呼ばれる、大量のデータや接続をさばきつつも更新通知の速さが重要となるアプリケーションでは必須技術で、今後のエンジニアにとって最も重要な知識の一つと言えるでしょう。 イベント駆動プログラミング自体はPerlでも以前からさまざまな用途に使われてきましたが、それがまた見直されているのは、従来のイベント駆動プログラミング用ツールキットの使いやすさをはるかに凌駕するAnyEventというモジュールが成熟期を迎えたためです。 イベント駆動プログラミングとは AnyEventの解説に入る前に、簡単

    第2回 AnyEventでイベント駆動プログラミング (1) | gihyo.jp
  • Parse::RecDescent 使ってみた - amari3の日記

    最近、字句解析やら構文解析に興味があるので、perl の強力なパーサ Parse::RecDescent を使ってみた。まずは簡単に足し算の文法を考えてみる。 バッカス・ナウア記法を使って書いていますが、勉強を始めたばかりなので誤りがあるかもしれません。 expression ::= atom + expression | atom atom ::= [0-9]+ expression の定義 atom + expression もしくは atom atom の定義 0〜9の1回以上の繰り返し これを、Parse::RecDescent を使って実装したのが、以下のソースコードとなる。 #!/usr/bin/env perl use strict; use warnings; use feature qw/say/; use Parse::RecDescent; my $grammar =

    Parse::RecDescent 使ってみた - amari3の日記
  • Perlシグナル処理 : D-7 <altijd in beweging>

    %SIGに限った事ではないのだけれども、ここでまず注意しなくてはいけないのが、%SIGはグローバル変数であること。ある関数foo()内で%SIGをいじったあとにreturnすると、foo()を呼び出したスコープでもその値は有効になってしまう。これだと自分はよくても他のモジュール等に影響を与える可能性がある。そこでまず癖としてlocal修飾子を使う癖をつけてほしい local $SIG{INT} = sub { warn "got SIGINT (OUTSIDE)" }; sub foo { warn "inside foo()"; local $SIG{INT} = sub { warn "got SIGINT (INSIDE foo)" }; sleep 10; } warn "sleeping..."; sleep 10; foo(); warn "outside foo()"; sl

    Perlシグナル処理 : D-7 <altijd in beweging>
  • CoW 要点まとめ

    CoW とは CoW = Copy-On-Write [ CoW - Wikipedia ] プロセスのコピーを作成 (fork) するとき、書き換えることのないメモリページは、両方のプロセス(元のプロセスと生成されたプロセス)で共用し、書き換える可能性のあるメモリページは、新たなメモリページを割り当ててコピーを作成する 鉄則 fork するプロセスを生成する場合、親子間でメモリ共有した方が良い forkする前に確保したメモリ領域は子プロセスとの間で共有される 共有されたメモリ領域に対して書き込みを行うと共有は解除(コピー)される forkした後に確保したメモリ領域は子プロセスごとに確保される(共有されない) どのプロセスでも同じように参照するだけの(書き換えない)データは、fork前に確保して共有した方が全体でのメモリ使用量を小さく保てる。つまり、fork 数を多くしたりできる。そして、

    CoW 要点まとめ
    hiroyukim
    hiroyukim 2013/05/23
    fork先でオブジェクトキャッシュ等を使用するとCow率が下がって個々のworkderのメモリ占有率があがり結果としてworker数を下げる必要性が生じるかも。
  • List Of Pornstars - Porn Models - SloppyKnees

    SloppyKnees.com is the best and most amazing website for free porn sex videos. With daily updates, you can always find the newest and hottest movies for online watching!

  • Moose(Mouse)の基本。アクセサのコードを読んでみる

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    Moose(Mouse)の基本。アクセサのコードを読んでみる
  • Tatsuro Hisamori 平均レスポンスタイム50msをPerlで捌く中規模サービスの実装

    YAPC::Asia Tokyo 2012 資料、詳細はこちら http://yapcasia.org/2012/talk/show/d1edd2c0-ab9b-11e1-918c-2a656aeab6a4 (c)Tatsuro Hisamori CC-BY-NC

    Tatsuro Hisamori 平均レスポンスタイム50msをPerlで捌く中規模サービスの実装
  • Kazuho@Cybozu Labs: Perl から MySQL に非同期アクセスする方法

    « サーバシグニチャは隠さないのが当たり前 | メイン | swifty-0.02 と Perl バインディング » 2007年09月10日 Perl から MySQL に非同期アクセスする方法 mod_perl のプロセス内でやるのに POE でイベントループ回せ、ということ? もうちょいkwsk! > b:id:kazuhooku naoyaグループ - naoyaの日記 - 非同期SQLサーバ エントリ全体の趣旨はさておき、ソケット通信を非同期化するためにまた別のソケット通信を行うという使用例に違和感を覚えたのですが、回避策としてブクマコメントで提示した POE::Component::EasyDBI も内部で fork (&プロセス間通信) してるんですね。変なコメントしてごめんなさい忘れてください。って、それだけではなんなので... ここから題。 私はそういうケースに遭遇したこ