Lisp@UNIX版 (585レス)
上下前次1-新
131: 名無しさん@お腹いっぱい。 [sage] 02/11/06 00:51 AAS
8queenでガベコレいるか?
132: 名無しさん@お腹いっぱい。 [] 02/11/06 01:03 AAS
>>129129(2): 名無しさん@お腹いっぱい。 [sage] 02/11/05 23:57 AAS
>>128
えっと、Debian GNU/Linuxのwoodyのcmuclとsbcl(Steel Bank CommonLisp)を
使っています。
cmuclのドキュメント(cmu-user.ps)を見ると、
*bytes-consed-between-gcs*という大域変数で、どこまでコンスが作られたら、
GCが行われるか決定されるか設定できるみたいに書いてあります。
デフォルトでは2000000になっているそうです。
一方、sbclでのデフォルトは20Mになっているそうです。
例えば古典的な8queensなんかを(コンパイルして)実行すると、
cmuclではしょっちゅうGCをはじめるのでsbclの10倍以上時間がかかります。
cmuclで(defparameter *bytes-consed-between-gcs* 20000000)とかってしても、
GCが行われる頻度は変わりません。
どうやったらcmuclでもGCでマメに止まらないようにできるのでしょうか。
厨房でスマソ。
(setf (bytes-consed-between-gcs) 20000000)
かな。
133: 名無しさん@お腹いっぱい。 [] 02/11/06 01:05 AAS
-- Variable: *bytes-consed-between-gcs*
CMU Common Lisp automatically GC's whenever the amount of memory
allocated to dynamic objects exceeds the value of an internal
variable. After each GC, the system sets this internal variable to
the amount of dynamic space in use at that point plus the value of
the variable `ext:*bytes-consed-between-gcs*'. The default value
is 2000000.
英語よくわからんのであれだが
GCしはじめる数値を処理系がこの変数にセットするだけでないかい。
この変数を変えるとGCしなくなるんじゃなく。
134: 名無しさん@XEmacs [sage] 02/11/06 07:45 AAS
CMU Common Lisp は動的オブジェクトに確保されたメモリの量が内部変数の値を超える
たびに自動的に GC する。各 GC の後、その時点で使用されている動的スペースの量に
変数 `ext:*bytes-consed-between-gcs*' の値を加えたものを内部変数にセットする。
初期値は 200000である。
135(1): 名無しさん@お腹いっぱい。 [] 02/11/06 08:27 AAS
.cmucl-initに
(setf (bytes-consed-between-gcs) 20000000)
してみました。
* (time (queens 10))
すると、
[GC threshold exceeded with 21,062,632 bytes in use. Commencing GC.]
[GC completed with 1,119,416 bytes retained and 19,943,216 bytes freed.]
[GC will next occur when at least 21,119,416 bytes are in use.]
ですのでコンスが20Mを越えたときにGCが始まるようになりますた。
ちなみに(queens 10)だと24回GCして37secかかります。
sbclですと一度もGCしないで0.85secで(queens 10)できますた。
なんでこんなに違うんだろう……
136: 135 [sage] 02/11/06 12:37 AAS
勘違いしてましたスマソ。
cmuclでは
* (load "8queens.lsp")
* (compile-file "8queens.lsp")
しても、
* (load "8queens.x86f")
するまでは8queensの関数はコンパイルされていないものが用いられる
ことに気づいていませんでした。
sbclではトップレベルの関数は即コンパイルしているんで違うのあたり前田った。
恥ずかしい……
137(1): 名無しさん@お腹いっぱい。 [] 02/11/10 03:10 AAS
(gc)
138(1): 名無しさん@お腹いっぱい。 [sage] 02/11/17 05:22 AAS
>>137
gcしたらこのスレは消えると思うが。
139: 名無しさん@お腹いっぱい。 [sage] 02/11/28 17:07 AAS
>>138
スレじゃなくて、レスが消えたな。
140: 名無しさん@お腹いっぱい。 [sage] 02/11/28 21:41 AAS
(sage)
141: 名無しさん@お腹いっぱい。 [sage] 02/11/29 00:54 AAS
[1]>(sage)
*** - EVAL: the function SAGE is undefined
1. Break [2]>_
142: 名無しさん@お腹いっぱい。 [sage] 02/11/29 01:21 AAS
(defun sage () (sage))
143: 名無しさん@お腹いっぱい。 [sage] 02/11/30 04:17 AAS
[1]> (defun sage () (sage))
** - Continuable Error
DEFUN/DEFMACRO(SAGE): #<PACKAGE COMMON-LISP> is locked
If you continue (by typing 'continue'): Ignore the lock and proceed
1. Break [2]>
144: 名無しさん@お腹いっぱい。 [sage] 02/12/07 20:38 AAS
寂れてるね。emacsスレがあるからいらないか。
145: 名無しさん@お腹いっぱい。 [sage] 02/12/08 12:07 AAS
(寂れてますね)
146: 名無しさん@お腹いっぱい。 [] 02/12/11 14:50 AAS
cl-httpd を cmucl 18d で動かせた人居ますか?なんか、cmucl 用のパッチを
当ててもコンパイルできないんすけど…。
147: 名無しさん@お腹いっぱい。 [] 02/12/15 03:59 AAS
age
148(1): 名無しさん@お腹いっぱい。 [] 02/12/15 11:45 AAS
CLOSが気に入ってます。
Allegro CLを研究室の予算で買ってもらおうかな…
149: 名無しさん@お腹いっぱい。 [sage] 02/12/15 13:36 AAS
>>148 ええのぅ。漏れもホスィけど金無いから cmucl で我慢。
windows では clisp か newlisp かなぁ…。
150(3): 名無しさん@Emacs [] 02/12/17 12:35 AAS
clawk 便利 age
151(1): 名無しさん@お腹いっぱい。 [sage] 02/12/17 16:22 AAS
>>150
あなたは なみなみならぬ修行を積んだ強者か単なる変態と
思われます。
152: 名無しさん@お腹いっぱい。 [sage] 02/12/17 17:03 AAS
(´-`).。oO(そんな事言える 151 も同類では?)
153: 名無しさん@お腹いっぱい。 [sage] 02/12/17 17:22 AAS
(´-`).。oO(他人を推量できるからには 151 は強者かつ変態である、に一票)
154: 151 [sage] 02/12/17 17:40 AAS
コードのぱっと見だけでもだいぶ違和感がある。(ないかい?)
外部リンク[html]:www.geocities.com
ケナしたりクサしたりしてるつもりはなくて、正直な感想です。
強まった lisper & awker ならすんなりイケるんですかね。
ま、も少し遊んでみます。
155: 150 [sage] 02/12/17 19:06 AAS
…全然修行を積んでないということは,漏れは…で,でも,少なくとも
regex は便利っすよね?
(let ((m (compile-str "[:digit:]+"))) (scan-str m "abc 012 cde"))
のように,compile-str で明示的に正規表現をコンパイルできて (゚д゚)ウマー
しかも GNU regex より速いそーですし.ウマウマ
上下前次1-新書関写板覧索設栞歴
あと 430 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.013s