"scribble“是球拍文档工具。我在下面的例子中遇到了一个问题。当为N=30时,scribble使用大约500M内存。似乎很难在一个scribble文档中包含超过300个这样的示例。
cat <<EOF
#lang scribble/manual
@(require scribble/eval)
@title["hello world"]
EOF
N=30
for((i=0;i<N;i++));do
cat <<EOF
@(examples
(require racket/snip)
(require racket/class)
(make-object image-snip% "a.jpg"))
EOF
done
) > x.scrbl
scribble x.scrbl 发布于 2011-09-01 14:33:00
我认为examples每次都会创建一个新的赋值器,这是相当昂贵的。如果可能,为整个文档创建一个评估器:
#lang scribble/manual
@(require scribble/eval)
@(define the-eval (make-base-eval))
@examples[#:eval the-eval
(require racket/snip)
(require racket/class)
(make-object image-snip% "a.jpg")
]
...
@examples[#:eval the-eval
<more stuff>
]这应该会使用更少的内存。
https://stackoverflow.com/questions/7266602
复制相似问题