我正在尝试确定在处理客户端请求时,我的应用代码的哪个部分需要大量内存。
为此,我在本地开发服务器中使用VisualVM和JConsole,但请求变得非常复杂,很难追踪请求的内存消耗,我不知道如何继续。
从开始到结束的一个请求通常使用:搜索API,实体低级API(数据存储访问),实体转换的Java反射(低级别到java普通对象),GWT RPC。所以至少有几十个或几百个要查找的类(我的代码)。
我想知道:
- 可以在本地开发服务器上进行测试,因为环境与生产模式下的环境有很大不同吗?我相信如果我特别知道“在哪里/如何看待”记忆,那应该不是问题。
- 我可以使用哪些工具或模式来跟踪一个请求使用的内存(然后使用它来估计运行模拟请求的N个客户端)。
我相信确实所需的内存已经变得非常大,但我需要知道我可以优化多少代码(或者我在哪里有代码问题,垃圾,库等)以及我应该在什么时候增加实例类型(到F4)或事件从标准环境切换到灵活环境。
另外,如果有java工具/ API以编程方式确定内存消耗,请指教!
醇>
谢谢。