Path: titcca!kogwy!wnoc-tyo-news!astemgw!choshi!creamy!icspub!ognews1!nakatani From: nakatani@ognews1.osakagas.co.jp (Kosuke NAKATANI) Newsgroups: fj.lang.lisp Subject: CLOS performance. (In Japanese/Kanji) Keywords: CLOS Message-ID: <187@ognews1.osakagas.co.jp> Date: 2 Mar 90 08:28:52 GMT Distribution: fj Organization: Osaka Gas Co., LTD. Lines: 66 このニュースグループは初めてです。 中谷@大阪ガス・基盤研究所と申します。 どうぞよろしくお願い致します。 実は、CLOS を使ってみたくて、PCL を入手し、インストールしてみました。 環境は、SONY/NEWS1850 + KCL です。 そこでテスト用に、以下のようなプログラムを作ってみました。 ------------------------------------------------------------------------- (defclass num2 () ((value :initarg :value))) (defmethod fibo4 ((x num2)) (cond ((= 0 (slot-value x 'value)) 1) ((= 1 (slot-value x 'value)) 1) (t (+ (fibo4 (make-instance 'num2 :value (- (slot-value x 'value) 1))) (fibo4 (make-instance 'num2 :value (- (slot-value x 'value) 2))))))) ------------------------------------------------------------------------ フィボナッチ数を求めるプログラムをクラス,インスタンスを無理矢理使って 書いてみたものです(実際はこんなバカなことをする人はいないと思いますが……)。 これを実行させてみると、以下のようになりました。 ----------------------------------------------------------------------- PCL>(time (fibo4 (make-instance 'num2 :value 10))) real time : 8.567 secs run time : 8.417 secs ---------------------------------------------------------------------- これとほぼ同様のことを Common Lisp のストラクチャを使って書いてみました。 ----------------------------------------------------------------------- (defstruct num3 (value)) (defun fibo3 (x) (cond ((= 0 (num3-value x)) 1) ((= 1 (num3-value x)) 1) (t (+ (fibo3 (make-num3 :value (- (num3-value x) 1))) (fibo3 (make-num3 :value (- (num3-value x) 2))))))) ---------------------------------------------------------------------- これを実行させてみると、以下のようになりました。 -------------------------------------------------------------------- PCL>(time (fibo3 (make-num3 :value 10))) real time : 0.600 secs run time : 0.383 secs -------------------------------------------------------------------- 両者を比べると実に10倍以上の差があるのですが、これはどういう理由によ るものなのでしょうか? (もちろん fino3 はコンパイルしていません) PCL のインストールの仕方が間違っているに違いない こんな例で比べるのは意味がない こんなものだ 等々どんなことでも結構ですからご意見お待ちしています。 どうぞよろしくお願いします。 中谷浩介@大阪ガス・基盤研究所 nakatani@osakagas.co.jp