我们有一些遗留代码是在21世纪初编写的,到目前为止运行良好,除了当我们向系统添加更多用户时,它每天都有内存异常
代码中有数千个HashMaps(当然不是最好的设计),这些HashMaps只在创建时在循环中修改,之后保持只读。
当我运行内存分析器时,它说在HahsMaps中有15%的堆由未使用的空间组成。
对于这些实例,如果我们使用反射使条目集可访问并调整其大小,使其大小等于实际需要的大小,迭代器是否会失败?
在初始构建之后,这些映射是只读缓存。我们在Java 6上运行代码,在Java 8上运行一些实例。不会升级JVM版本,再过10-12个月,新代码就会投入生产并替换当前的代码。