我最近升级了Rails应用程序以使用Ruby 2.6.1,并发现平均可用内存插槽(以Heroku衡量)急剧增加。
我找不到任何相关的问题,并且很好奇是否有人看到过这个问题,或者对它为什么会发生有一个想法。有关更多信息,请参见下面的两个图表-第一个是使用Ruby 2.6.1进行部署后的总体趋势,第二个是更详细的视图,显示了内存插槽减少的重复模式。
更新
为了提供更多背景信息,我添加了一些图表,它们显示了Ruby 2.6.1升级前后的内存使用情况和堆对象。两者非常相似,不同之处在于,在2.6.1升级之后,将释放更多对象。一切运行良好,但是我仍然对为什么会发生这种情况感兴趣。
如果这是预期的内存优化,我想知道Heroku的 / @nateberkopec的断言是否“大量的空闲插槽(例如,超过300,000个)表明存在分配大量对象并释放它们的控制器操作”,是否需要将针对Ruby 2.6进行修订。