没有i / o,没有数据库,没有put语句。我有一个我实例化的中心对象,它的初始化方法中有几个Set.new创建。 (我将Set.new更改为Array.new无效)。
我想进行内存负载测试,但发现单次调用我的系统的性能大致线性地从1 x 10-4增加到160 x 10-4,因为我调用了20,000次(添加了一个新对象)每次通话)。所以我从来没有进入内存测试部分......
我将时间增加缩小到Muffin.new语句,初始化中有两个Set.new创建。
奇怪的是,内存分配或对象创建应该花费与创建的对象数量成比例的时间,但这是我认为我所看到的。
我错过了什么吗?是这样的吗?还有其他我应该考虑或考虑的事情。?
答案 0 :(得分:0)
听起来像垃圾收集器正在工作......尝试在分配之前使用GC.disable,然后在GC.enable之后查看它是否能解决问题。
我不是Ruby专家,但Ruby的垃圾收集实现可能不是这个语言的最佳选择。请阅读this了解详情。
答案 1 :(得分:0)
毋庸置疑,我撤回了这个问题。