我正在测试一个启动restlet的应用程序,当一个http请求到达restlet时,启动一个新线程并处理请求,应用程序创建一个新对象并存储在地图中(对于压力测试,我正在使用Jmeter ,我看到 java 进程内存有问题,我不知道问题是堆、堆栈还是其他问题,让我们展示一下问题:
我多次启动相同的案例,首先运行我的项目(当然是空缓存):
- 500 个线程 -> 线程的平均时间为 1900 毫秒
- 500 个线程 -> 线程的平均时间为 600 毫秒
- 500 个线程 -> 线程的平均时间为 598 毫秒
- 500 个线程 -> 线程的平均时间是 670 毫秒 ....
如您所见,我的问题是第一次执行所需的时间比其他执行要长得多。每个线程都将实例化对象存储在 Map 中,并且当它为空时似乎工作很慢。有人知道谁可能会去吗?我试图增加 jvm 的堆启动内存,但不起作用。如果有人知道任何可以阅读以帮助我欣赏它的参考资料
谢谢。