a person powered by ototoy blog

モヘンジョだろ!!

記事リスト 24ページ目

PEARぁぁあああ!!orz

PHP-5.1.1にあげたサーバで色々な不具合がでている。今日の不具合は突然のメモリ不足。今まで64MBで充分だったのに、128MBでも足りなくなった。いくらなんでもそれは酷いんじゃないですかとか思いながら、自分のスクリプトを色々調べても、ルーズなメモリ管理なんかはしているわけがない。グローバルででかい配列とかインスタンスを確保してれば別だけどそんなことは全然ない。システム側でなにか挙動が変わったんじゃないかと思ってさらに色々調べてたらどうやらPEAR_Errorクラスのコンストラクタで、特に何も設定しないと強制的にdebug_backtrace()という関数が呼ばれることが判明した。なんじゃこれ?しかも、なんか不思議な制御構造で変テコな定数(プロパティ)をいじらないと抑止できない。ていうか汚い。PEARってプロダクションレベルのサービスに使われてるライブラリだと思うんだけど、ずいぶんと凄いトラップがあるもんだねぇ。ある意味スゲーよ。でもPHP4のころはあんまり気にならなかったってことはPHP5だけで有効な動作なのか、それともPHP4の時のdebug_backtrace()がほとんど何もしてなかったのか...

// disable PEAR's debug_backtrace();

$a = &PEAR::getStaticProperty('PEAR_Error', 'skiptrace');

$a = TRUE;

なんかちょっとイヤな書き方だが。まあ、いいや。この処方を行った後は、PEAR::DBを使っていて、128MBで足りなかった(プロセスでみると250MB超)スクリプトがプロセスで見ても16MBくらいで収まるようになった。

というわけで、PEAR_Errorレベルでデバッグしなくてもいい場合、上記スクリプトでメモリも(たぶん)実行時間も節約できるよ。日本語でググってみてもどこにも書いてないみたいだから、書いとく。

# というモチベーションでこの記事をFirefox上でエディットしてたらFirefoxがコアダンプして落ちたのでemacsで書き直してるんだけど、これってなんかの呪い?

追記: http://php.net/debug_backtrace PHP5とPHP4.3以降に入った組込関数だった。マニュアルを読むとメモリはもちろん、かなりCPUリソースも食いそうな勢いだ。こんなのがデフォルトで走るPEARって...大丈夫なのか?

Posted By nt | 投稿日: 2005年12月13日 1時38分 | 更新日: 2005年12月13日 2時10分
| コメント(2) | 固定リンク |

家で作った方が満足度が高い料理

豚肉の生姜焼き。食堂とかレストランで出て来るやつは肉もショボいし少ないし、生姜も遠慮がちにしか入ってないし。

他にもあるけど今は思い出せん。

Posted By nt | 投稿日: 2005年12月12日 4時15分 | 更新日: 2005年12月12日 4時15分
| コメント(1) | 固定リンク | [食事]

基礎工事

タマネギ*2、長葱*3、人参*1、セロリ*1、ニンニク*1/2、芽キャベツ*10、ショウガ*1、牛スネ500gを3Lくらいのお湯に全部入れて煮込み始めた。どういう料理にしようかなー。

Posted By nt | 投稿日: 2005年12月12日 3時49分 | 更新日: 2005年12月12日 3時49分
| コメント(0) | 固定リンク |

この週末は

色々なシステムが色々な原因で死んだり、不具合が出たりした。おかげでいつもの昼夜逆転に正当な理由が出来てちょっと嬉しい(嘘)。直接手を出して直したのは二つ。現場では把握度がモノをいう。プロプライエタリなシステムはそのへんがやっぱ不安かと。

あんまり関係ないけど、そんなこんなで真夜中に出かけようとエントランスの外に出た瞬間に突然年末な感じが自分の中にブワーと湧き上がって来てびっくりした。なんなんだろうこの独特の感じ。

Posted By nt | 投稿日: 2005年12月12日 3時39分 | 更新日: 2005年12月12日 4時10分
| コメント(0) | 固定リンク |

柚楽弥衣べた褒め

そして、全部ダウンロードするぜ!レコミュニで!とか思ったのだが...すくなくともこの状況だとCDを買った方が満足度が高いということに気が付き、CDを買った(タワレコ通販で)。150円なら全部ダウンロードしたのにな〜。我ながら微妙な線引きだと思った。

Posted By nt | 投稿日: 2005年12月8日 4時39分 | 更新日: 2005年12月8日 4時39分
| コメント(4) | 固定リンク |

喋る喋る

今週は人前でたくさん喋る機会が多いなぁ。今日も社内報用のインタビューで一杯喋って疲れたのに、そのあととある投資家筋の方に90分ほどインタビューを受けて、さらにウエキさんとダイキちゃんの前でDB設計について結構たくさん喋った。DB講義をやる気は最初あんまりなかったんだけど、自分の中では「コレやっとけ」みたいなことを言い捨てて去った人のおかげでご機嫌ナナメになったウエキさんをフォローする感じだったのかもしれない。でも今日話してくれたことがちょっとでも役に立ってくれると嬉しい。ギャボー。

しかし、過去にやったことについて聞かれると、あんまり系統だてて憶えてないことに驚く。というか量が多いのか、単なる馬鹿なのか、ダラダラ思い出した順に喋るといつまでたっても泡のように記憶が浮かび上がって来るのでキリがない。

Posted By nt | 投稿日: 2005年12月8日 4時35分 | 更新日: 2005年12月8日 4時35分
| コメント(1) | 固定リンク |

千年愛/柚楽弥衣

めっちゃイイ。良すぎて死ぬ。

レコミュニで初めて歴史的名曲に入れます。

千年愛/柚楽弥衣 amazonで購入 towerrecordsで購入
Posted By nt | 投稿日: 2005年12月6日 4時39分 | 更新日: 2005年12月6日 4時39分
| コメント(0) | 固定リンク |

ロールバック

Firefoxで、kinput2を使って変換した後、二番目の候補を選択して^Mで確定するとフォームで二度と文字が入力できないという忌まわしいバグが1.5で復活してるしorz。1.0.6あたりで直ったのにな〜。

Posted By nt | 投稿日: 2005年12月6日 4時2分 | 更新日: 2005年12月6日 4時2分
| コメント(0) | 固定リンク |

準備

明日、専修大学のネットワーク情報学部の授業で講義をやらせてもらえることになったので、一緒に話すタワー外崎さんとブラジル森さんとで色々ブレスト。面白いんだけど、色んな意味で授業では話せないようなことが出てきて、さらに並行して進めていた某開発の外部要因によるトラップに腹が立ちすぎてあんまり身が入らなかった。

しかしphpでもペアプログラミングは有効だということがわかった。とくに複数のベテランプログラマがやる気をイマイチ喪失してる時にはw。

Posted By nt | 投稿日: 2005年12月6日 3時56分 | 更新日: 2005年12月6日 3時58分
| コメント(0) | 固定リンク |

デジデリオ。えぇえぇ。名前で選びましたとも。

ふらっと入ったマキアヴェリとかいう恐ろしげな名前のレストランで頼んだAVIGNONESI DESIDERIO 2000はそれなりに旨かった。というかメルロー100%なのにそんな感じがあまりしないのが意外だったですよ。というメモ。

店の女性スタッフが丸憶えのメニューを必死で思い出しながら一生懸命棒読みで喋るのがほほえましかった。

Posted By nt | 投稿日: 2005年12月8日 4時48分 | 更新日: 2005年12月8日 4時48分
| コメント(2) | 固定リンク | [ワイン]