我的应用程序中有一个哈希图。映射是单例的,对其进行更新或读取的访问是使用同步方法来保护的。
我的问题发生在使用大量并发线程(20000+)进行测试时。当线程使用put()写入映射时,im会得到OutOfMemory异常。
读操作很好(我可以模拟1000000+线程),没有任何问题。
有什么建议可以让我的hashmap写得更好吗?这也可能是我在内存中存储如此多数据的方法的限制?
发布于 2011-08-25 22:17:48
至于你问题的最后部分:
有什么建议可以让我的hashmap写得更好吗?这也可能是我在内存中存储如此多数据的方法的限制?
我使用一个工具来查看应用程序在做什么。它可以进行堆和线程转储。它还有一个监控器,用于显示cpu、加载的类、线程、堆和perm gen。它被称为Java,是JDK1.6的一部分,可执行文件位于jdk的VisualVM文件夹中。我将使用它来跟踪我们代码中的一些线程问题。
哈哈,詹姆斯
https://stackoverflow.com/questions/5845276
复制相似问题