[Gauche-devel-jp] Re: portapi_inline.c

Back to archive index

Shiro Kawai shiro****@lava*****
2004年 2月 21日 (土) 07:10:25 JST


ども。
私がこの方法を採用しなかったのは、
PORT_SAFE_CALLのオーバーヘッドを恐れたからです。

ファイルポートでデータをバッファに置くだけの場合
(つまり、bufport_flushを呼ばない場合)と、出力
文字列ポートの場合、コード内でエラーを投げることが
無いので、PORT_SAFE_CALLを噛ませるのが無駄になります。
そして、多分そういう状況が、文字出力のほとんどの場合を
占めると思います。

ただ、このへんはベンチ取りながらいろいろ変えたような気も
するのですが、果してご指摘の組合せ (unsafe call全体を
PORT_SAFE_CALLで囲む) でベンチを取ったかどうか覚えて
いません。実はそんなに影響がないかもしれないです。
もしよければこんな感じでベンチとってみて下さい。

  (use gauche.time)

  (time
    (dotimes (i 1000)
      (with-output-to-string
        (lambda ()
          (dotimes (i 1000)
            (write-byte 0)))))
    #f)

--shiro



Gauche-devel-jp メーリングリストの案内
Back to archive index