问题标签 [smalltalkx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
126 浏览

smalltalk - 最佳流大小(ReadStream、WriteStream 等)

我现在正在编写一个生成文件的程序。我想知道 Stream(s) 的最佳实践是什么,尤其是在大小方面?我可以想象,如果流变得太大,它会带来一些减速或其他性能问题。

我有以下代码,可以多次调用,而且集合可能很大。我认为对于不同的大小,例如 <1MB <=> 10MB <=> 100MB <=> 到 1-10GB <=> >10GB 的行为应该有所不同

最佳实践是什么?例如,是否应该关心它是否适合堆或堆栈?

现在我已经得出结论,如果我对流(或集合)使用最多 5kB 的空间,它就足够快并且可以工作(对于 Smalltalk/X)。

我想知道不同 Smalltalk 风格的限制和内部结构。(我没有进行任何测试,也找不到任何关于它的文章)

编辑:首先谢谢大家(@LeandroCaniglia,@JayK,@aka.nice)。第一个版本是 - 减速是由许多操作引起的:打开、写入、关闭。逐行写:

第二个版本,速度更快,但仍然不正确。有一个以块形式写入的中间流是:

Leandro 的回答和您的建议之后的第三个版本(我查看了缓冲区 - 大小定义为__stringSize(aCollection)可用缓冲区/内存耗尽时,然后将其写入文件。我已将#write:to:所有内容一起删除,现在流定义为:

anAppendFileStream := aFile appendingWriteStream.

现在,在流中发挥作用的每个方法都使用:

anAppendFileStream nextPutUtf16Bytes: aCharacter MSB: false.

或者

anAppendFileStream nextPutAllUtf16Bytes: string MSB: false

至于缓冲区大小本身:

存在缓冲区大小逻辑,其中会猜测缓冲区长度,例如#nextPutAll:- bufLen = (sepLen == 1) ? len : (len + ((len/4) + 1) * sepLen);),其中sepLen根据分隔符大小(EOF、cr、crlf)定义。

对于不同的方法,例如#copyToEndFrom:- 对于 windows:bufferSize := 1 * 1024或 *nix bufferSize := 8 * 1024[kB],存在不同的缓冲区大小。

0 投票
1 回答
158 浏览

smalltalk - Simple class definition error in smalltalk

I am trying to use smalltalk with smalltalk/x-jv branch. I have following simple code:

I am trying to run it on command line with stc command of smalltalk/x-jv, but it it not working. Following is the error:

Where is the problem and how can it be solved? Thanks for your help.

0 投票
1 回答
239 浏览

java - 如何在 Smalltalk 中访问和使用 Java 库/包

另一个 Stackoverflow 问题的评论中提到,可以从 Smalltalk 访问 Java 包。

但是,我在网上搜索时找不到任何有关此的信息。

在这方面的任何见解都将受到高度赞赏。

0 投票
1 回答
126 浏览

smalltalk - **连接两个 Smalltalk 的**方法是什么?

如果我想互连两个 Smalltalks,即Smalltalk/Xwith GemStone/S,你会推荐什么方法?我想有一个Smalltalk/X带有持久对象的应用程序GemStone/S

在任何开发之前,我都试图调查这个问题。我发现一些开源实现已经完成——我喜欢从别人的错误中学习,所以我不会重复它们。

我找到了一个Pharo的实现gt4gemstone——Glamorous Toolkit,用于与 Gemstone/S 进行远程工作。

我也从詹姆斯福斯特那里找到了 -Jade它取得了更多成就,因为它是

在 Microsoft Windows 上运行的 GemStone/S 的替代开发环境 (IDE)。

您建议从哪里开始?是否会阅读gt4gemstoneorJade 然后想出类似的方式来互连Smalltalk/XGemStone/S