Java的Sizeof实现

版本 0.1

下载Jar    下载源文件    在线文档

这篇文章介绍我的上篇文章中承诺的那个可以计算出Java对象的shallow size和deep size的小类库。

这个类库包含一个公共类:com.codeinstructions.sizeof.SizeOf,它实现了5个公共方法:

static long deepSize(java.lang.Object object) – 计算给定对象的deep size。
static long deepSize(java.lang.Object object, long maxSize) – 计算给定对象的deep size,但是为了避免深入到一个非常大的对象树中,因此只计算到给定的程度为止(maxSize)。
static long depthLimitedDeepSize(java.lang.Object object, int depth) – 返回给定对象的deep size,但是只计算到给定的深度(depth)。

static boolean isLargerThan(java.lang.Object object, long size) – 判断给定对象的deep size是否超过给定的限制(size)。
static int shallowSize(java.lang.Object object) – 返回给定对象的shallow size。

完整的java文档请看这里

工作原理

这个类库基本上就是用反射(reflection)来得到类的内部细节,从而计算出其实例的大小。同样,也是用反射来遍历对象图来计算其deep size。
目前为止这个类库还是试验版本,仅在32位的Java 6的JDK第11个升级版上测试通过。
这个类库有BSD风格公共许可(BSD-like public license),也就是说只要你也遵守这个许可,就可以按照自己的喜好对这个类库进行修改了。

 

英文原文:Code Instructions,翻译:ImportNew - 郑雯

译文链接: http://www.importnew.com/1306.html

【如需转载,请在正文中标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

关于作者: 郑雯

2009年北航计算机学院毕业,加入IBM CDL至今。从事过web产品测试及开发工作。目前兴趣主要在游泳和自助穷游上。

查看郑雯的更多文章 >>



可能感兴趣的文章

发表评论

Comment form

(*) 表示必填项

2 条评论

  1. javaworld 说道:

    java文档链接地址怎么打不开呢

    Thumb up 0 Thumb down 0

跳到底部
返回顶部