欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
标明清单(manifest)
增加:com/bj58/test/SizeOfAgent.class(读入= 3119) (写出= 1698)(压缩了 45%)
增加:com/bj58/test/SizeOfAgent.java(读入= 3147) (写出= 1204)(压缩了 61%)
增加:com/bj58/test/Test$Person.class(读入= 442) (写出= 305)(压缩了 30%)
增加:com/bj58/test/Test.class(读入= 692) (写出= 441)(压缩了 36%)
增加:com/bj58/test/Test.java(读入= 509) (写出= 290)(压缩了 43%)
D:\workspace\objsize\src>java -javaagent:size.jar com.bj58.test.Test
24
MANIFEST.MF:
Manifest-Version: 1.0
Main-Class: com.bj58.test.Test
Premain-Class: com.bj58.test.SizeOfAgent
Boot-Class-Path:
Can-Redefine-Classes: false
【注意】MANIFEST.MF文件的格式要求比较严格,每一行要满足:key:空格value回车
如何在web应用程序里面使用呢?
以我的tomcat为例,
(1)把size.jar上传tomcat的lib目录下面
(2)修改catalina.sh:
添加一行:
JAVA_OPTS=”$JAVA_OPTS -javaagent:$CATALINA_HOME/lib/size.jar” //这一行是新添加的
if [ -z “$LOGGING_MANAGER” ]; then
JAVA_OPTS=”$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager”
else
JAVA_OPTS=”$JAVA_OPTS $LOGGING_MANAGER”
fi
(3)在应用里面添加一个controler:
@Path(value = “/api/size”)
@GET
public ActionResult size() {
Map<Long, List<Long>> map = ApiUtils.getHotindexBaidu();
long size = SizeOfAgent.fullSizeOf(map);
return new ApiActionResult(“size:”+size);
}
然后就可以用浏览器来访问了。
[1][2][3]
如果心胸不似海,又怎能有海一样的事业。