suid

suid してるスクリプトで,ハッシュをデリファレンスすると遅いような気がする.とか言われて,調べてみた.

多分,suid してると taint フラグが立って,その分メモリ食ってて,そもそも細いスカラ作り過ぎてるから,その辺の相乗効果なんじゃないかな.と予想する.*1

実用Perl とかで,調べたいけど本どこやったかなぁ?
見つかんなかったら,ソース読むか.

実用 Perlプログラミング 第2版

実用 Perlプログラミング 第2版

そう思うまでの経路

  1. ファイルオーナ以外のユーザで,suid の有無で速度が違うことを確認.
  2. 切り分けるけど,ハッシュとかとは無関係な次元で遅くなるらしい
  3. Solaris8 で試していたので,truss 取ろうとしたら,suid だと取れんとか言われて,ガックシ
  4. root で,truss -df -o su -c とかして,結果を比較してみる.
  5. brk() いっぱい呼んでるとこで,差が付いてるなぁ.
  6. てか,brk が連続してるとこ,最初に呼び出した引数は同じだけど,最後は違うなぁ.
  7. top で比べても明らかに違う.
  8. もしかして,taint ?とか思って,普通,suid,-T を比較すると,suid と -T は同じくらいな感じ.
  9. perlguts とか見たけど,taint って magic で格納してあるんだね.へー. ← いまここ
  10. 実用Perl か ソース で確認しる.

*1:ハッシュとか全然関係無いですからっ!