suid
suid してるスクリプトで,ハッシュをデリファレンスすると遅いような気がする.とか言われて,調べてみた.
多分,suid してると taint フラグが立って,その分メモリ食ってて,そもそも細いスカラ作り過ぎてるから,その辺の相乗効果なんじゃないかな.と予想する.*1
実用Perl とかで,調べたいけど本どこやったかなぁ?
見つかんなかったら,ソース読むか.
- 作者: Simon Cozens,菅野良二
- 出版社/メーカー: オライリージャパン
- 発売日: 2006/03/01
- メディア: 大型本
- 購入: 3人 クリック: 22回
- この商品を含むブログ (39件) を見る
そう思うまでの経路
- ファイルオーナ以外のユーザで,suid の有無で速度が違うことを確認.
- 切り分けるけど,ハッシュとかとは無関係な次元で遅くなるらしい
- Solaris8 で試していたので,truss 取ろうとしたら,suid だと取れんとか言われて,ガックシ
- root で,truss -df -o
su -c とかして,結果を比較してみる. - brk() いっぱい呼んでるとこで,差が付いてるなぁ.
- てか,brk が連続してるとこ,最初に呼び出した引数は同じだけど,最後は違うなぁ.
- top で比べても明らかに違う.
- もしかして,taint ?とか思って,普通,suid,-T を比較すると,suid と -T は同じくらいな感じ.
- perlguts とか見たけど,taint って magic で格納してあるんだね.へー. ← いまここ
- 実用Perl か ソース で確認しる.
*1:ハッシュとか全然関係無いですからっ!