使用MAT(MemoryAnalyzer)如何找到接口请求路径

9 阅读1分钟

首先,占用内存较大的对象要是处理接口相关的对象,比如tomcat的线程

org.apache.tomcat.util.threads.TaskThread

然后,可以通过它持有的

org.springframework.web.context.request.ServletRequestAttributes

这个类的对象找到接口路径,路径如下

org.springframework.web.context.request.ServletRequestAttributes 
+request: org.springframework.web.util.ContentCachingRequestWrapper
++request: org.apache.catalina.connector.RequestFacade
+++request: org.apache.catalina.connector.Request
++++mappingData: org.apache.catalina.mapper.MappingData
+++++requestPath: org.apache.tomcat.util.buf.MessageBytes

目的就是找到

org.apache.catalina.connector.Request

这个对象,接口路径保存在这个对象的mappingData属性里,类型为

org.apache.catalina.mapper.MappingData

它的requestPath属性就是请求路径