おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2005年06月06日(Mon) ビール飲み過ぎで起動が遅いです [長年日記]

なんちて

Pythonの起動は遅い(かもしれない)

enbug diaryより。へぇ。ちょっと手元でも実験してみました。

ほんとだ。perl, v5.8.5、ruby 1.8.3、Python 2.3.4です。

straceするとシステムコールの回数がわかるのかな。

ふむふむ。じゃあ起動して終了するまでにreadしたバイト数。

1.5桁ほどちがいますね。バイトコードを実行するようになってるあたりが違うのでしょうか?

なんだか日本語エンコーディング関連のようなファイル名が沢山見えました。ならば、

速くなった?

うんにゃ。しかしロケールでtimeの出力が違うのにびっくり。(追記:普段はja_JP.EUC-JPになってます。、下にもっと追記)

readしたバイト数をファイル名に関連づけられるともう少しいろいろわかるのでしょうけど、また今度にしまーす。

(もっと追記)timeの出力が変化するのはロケールのせいじゃなかったです。LANG=ja_JP.EUC-JP time …でもLANG=Cを付けた時と同じ出力が得られました。コマンドラインの最初にtimeを書くとbashの予約語のtimeとして解釈されて、LANG=…の後にtimeを書くとコマンド名として解釈されて/usr/bin/timeが実行される、というのが真相のようです。失礼しました。

straceからファイル名と読んだデータの大きさを得る

そういうわけで簡単なスクリプトを作ってみました。ファイル名にダブルクォーテーションが含まれてたりするとどうなるか知らない。

ここではstrace.rbというファイル名にしてあります。結果はというと、

へぇ。バイトコードになったPythonスクリプトをたくさん読んでるのかな?

perlでもrubyでも、そしてpythonでも、共有オブジェクトは512バイトずつ読まれてるのですが、ELFでは最初の512バイトにシンボルテーブルが書かれてたりするのでしょうか。いつか調べるー。いつー。

仕事すすみません。

す、すみません…。

select(2)ってデータがなくても返るのかな。man select_tutをよおおく読もう。

うりゃ。man -t select_tut | ps2pdf - - >| select_tut.pdf


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>