タグ

ブックマーク / iogi.hatenablog.com (26)

  • func_get_args系の関数の変な動きから、EG(argument_stack)を中途半端に眺める - おぎろぐはてブロ

    ※この記事ではちと勘違いがあったので、次のエントリも一緒に読んでください。 くまさんからのリクエスト。 func_get_argsなどの関数の引数を受け取る関数は、任意の引数を取る関数などを書く際によく使います。これで、ありがちなのが、 <?php function hoge() { $content = join('', func_get_args()); } hoge(); ?> をすると、 PHP Fatal error: func_get_args(): Can't be used as a function parameterと警告でちゃうこと。 その理由として、PHPマニュアルには、 注意: この関数は、カレントスコープに依存してパラメータの詳細を決定しますので、関数パラメータとして使用することはできません。もし、この値を渡さなければならない場合、戻り値を変数に割り当て、その変

    func_get_args系の関数の変な動きから、EG(argument_stack)を中途半端に眺める - おぎろぐはてブロ
    koyhoge
    koyhoge 2007/07/02
    内部解析シリーズ。おもしろい
  • APCいろいろと、「stat()を呼びまくるのを眺める」の補足 (解決はできてない) - おぎろぐはてブロ

    以前のエントリなのですが、バーコードリーダー萌えのkuせんせいから、そもそもstatって重いのか、と聞かれました。 そうなのですよ。確かに、statをいっぱい呼んでいることは分かるのですが、その処理が重いのかってのを知らないのです。PEARモジュールを普通に使うだけでも、statの数は軽く500を超えたりするので、「ちりも積もれば、」なんでしょうが、その「ちり」のコストがどれくらいなのか。 実際のところ、OSレベルでキャッシュかかったりもするので、自分は良くわからんのです。BSDとLinuxでも違いがあるかもしれないし。 realpathチェックを外して驚きの早さ30%アップ!な http://papelipe.no/tags/php/optimizing_php_for_intel_based_mac の記事では、FreeBSDが重いよと書いているようにも読み取れます。 いろいろ実験して

    APCいろいろと、「stat()を呼びまくるのを眺める」の補足 (解決はできてない) - おぎろぐはてブロ
  • facebookでのAPCの設定 - おぎろぐはてブロ

    php|tek 2007で発表された、facebookの中の人のAPCの設定についての話です。軽く中身を説明します。 apc@facebook (PDF) apc@facebook (PDF) 2007/09/21 追記 サイトの構成が変わって、スライドがデッドリンクになっていたため差し替えました。また、今月開催されたphp|works 2007での講演もアップされています。こちらのが読みやすくなっている部分があるので、こちらを参照したほうがいいかも。 apc@facebook (PDF) in phpworks2007 http://tekrat.com/talks 内容 LAMP構成で、そしてAPCを使ってます Facebookのprofile.phpの表示を例にあげると、ノーマルのPHPに比較して、FacebookのチューンしたAPC設定では秒間リクエスト数が12倍に! ちょ、、それ

    facebookでのAPCの設定 - おぎろぐはてブロ
    koyhoge
    koyhoge 2007/06/15
  • include_pathを探しにstat()を呼びまくるのを眺める - おぎろぐはてブロ

    id:koyhogeさんのPHPのコードキャッシュがなぜ速いのか - Blog::koyhoge::Techから。(先日はありがとうございました m(__)m) 「PHPは内部でstat()を呼びまくっているので遅い」とのことですので、include_pathの後ろの方のディレクトリにあるスクリプトファイルを大量にrequireしていたりすると、それだけでコードキャッシュのメリットが出てくるのかもしれません。 PHPのコードキャッシュがなぜ速いのか - Blog::koyhoge::Tech どのレベルからキャッシュが利用されるのかは、ちょっと記憶が無いので、コードを読み直さないとダメなのですが、「stat()を呼びまくって遅い」のstat()が爆発的に呼ばれる動きを軽く説明?したいとおもいます。(早く寝なきゃと適当に書いてるので、説明になってない。。ーー;いかんせん、こういうのあまりやら

    include_pathを探しにstat()を呼びまくるのを眺める - おぎろぐはてブロ
    koyhoge
    koyhoge 2007/06/05
    なるほど、分かりやすいす。キャッシュすればいいのにねぇ。
  • r3 と stickleback を試してみる - プロジェクトの作成 - おぎろぐはてブロ

    前記事(r3 と stickleback を試してみる - セットアップ - おぎろぐはてな)の続き。 移動中の電車の中で、ボールペン片手にドキュメントを読んでみた。まだ最後まで読み終わってないので勘違いがあるかも。。 で、これってどういうものなのか productとintlをベースに、テンプレートを管理、一括生成する仕組みで、自由度の高いローカライズ等を可能にするもの。ヘッダーとかの埋め込みも、辞書を使ったローカライズも、リアルタイムにせずに、予め生成してしまって、ファイル一杯サーバにアップしちゃったほうが早いじゃない。ってアプローチだと思います。 多言語、多地域、大小のいくつものプロダクトでサービス展開をするポータルみたいなサイト (それって、Yahoo!とかgoogleとか)では、有効だと思うのですが、個人でやってる分には、きちんと継承関係が整理されるくらいのメリットなのかも。 Ya

    r3 と stickleback を試してみる - プロジェクトの作成 - おぎろぐはてブロ
  • 第24回PHP勉強会 - おぎろぐはてブロ

    PHP勉強会に初参加。 サイボウズラボでのPHP勉強会と、牛角での懇親会終了。とりあえず、おつかれさまでしたー。勉強会に、同じ会社の今年入社の新卒さんがいた。 id:shimookaさんが、発表内容のダイジェストをリアルタイムで書かれているので、自分は軽く感想とか書こうと思います。 君はまたextensionか(PECL_CodeGenでC++するとハマる件) haltさん。Tx: Succinct Trie Data structureのExtensionをPECL_CodeGenで作ろうと思ったけど、STLのincludeがうまくできないとか、ライブラリのシンボル見つからないとか。 普段からC++でExtension書いてるから、「動かせるようにはなる」というのは分かる。けど、ext_skelで空のskeltonを吐きだして、ソースコードにそのまま書いていく旧世代 ^^; なので、動か

    第24回PHP勉強会 - おぎろぐはてブロ