技术问询:手动创建的/tmp/hsperfdata_目录文件何时被JVM删除
问题解答
- 这个文件是被
jps自身所在的JVM在**启动初始化阶段(main方法执行之前)**删除的。 - 原因是:
/tmp/hsperfdata_<用户名>目录是JVM专门用来存储进程性能数据的目录,里面的文件默认以运行中的JVM进程PID命名。当任何JVM工具(比如jps、jstat)启动时,其所属JVM会在初始化性能数据模块时,自动扫描该目录,删除那些没有对应存活进程的文件——你手动创建的文件并非某个存活JVM进程的性能数据文件,会被判定为无效文件,因此在jps的main方法执行前就被清理掉了。 - 这个清理逻辑属于JVM底层的性能数据支持模块(
PerfDataSupport相关实现),并不在jps工具的Java源码里,所以你调试jps的main方法看不到相关删除代码。
内容的提问来源于stack exchange,提问作者林贻民
相关产品推荐
相关产品推荐

