如何增加Transcript缓冲区大小?

时间:2014-07-01 04:51:29

标签: smalltalk pharo

我正在使用Pharo 3,我使用Transcript记录操作。

然而,当前缓冲区的大小对我的需求来说很短。怎么增加呢?有characterLimit,但这是一个方法常量,因此在不更改核心包的情况下不易设置。

我不想使用NonInteractiveTranscript,因为我想留在图像中。

1 个答案:

答案 0 :(得分:2)

不,没有其他方法可以更改Transcript的缓冲区长度,然后修改#characterLimit(通常为ThreadSafeTranscript)。但是,尝试检查ThreadSafeTranscript allInstances,您将看到底层流更长(50000是写入限制)。所以,无论你打印到Transcript,实际上并没有丢失,只是不可见。

话虽如此,使用Transcript进行大量输出通常不是一个好主意,因为:

  • 输出被切断(正如您已经看到的那样)
  • 重复调用时脚本非常慢:

    尝试

    1 to: 10000 do: [ :i | Transcript show: i ]
    

    VS。

    Transcript show: (String streamContents: [ :stream | 
        1 to: 10000 do: [ :i | stream nextPutAll: i asString ] ])
    
  • 你不能在其他地方使用输出(例如写入文件或传递给方法)

在我看来,Transcript可以用于偶尔的快速调试,但不应该用于任何相关的应用程序。