java比mysql耗内存_数据库数据在Java占用内存简单估算

import net.sourceforge.sizeof.SizeOf;

import java.io.IOException;

import java.math.BigDecimal;

import java.math.BigInteger;

import java.sql.SQLException;

import java.sql.Timestamp;

import java.util.*;

public class TestSize {

static {

SizeOf.skipStaticField(true); //java.sizeOf will not compute static fields

//SizeOf.skipFinalField(true); //java.sizeOf will not compute final fields

//SizeOf.skipFlyweightObject(true); //java.sizeOf will not compute well-known flyweight objects

}

public static void main(String[] args) throws SQLException, IOException, IllegalAccessException {

TestSize ts=new TestSize();

ts.testObjectSize();

ts.testDataSize();

System.out.println("ok");

}

public void testObjectSize() {

System.out.println("Integer:"+SizeOf.deepSizeOf(new Integer(56)));

System.out.println("Long:"+SizeOf.sizeOf(new Long(56L)));

System.out.println("Object:"+SizeOf.sizeOf(new Object()));

System.out.println("Date:"+SizeOf.sizeOf(new Date()));

System.out.println("Timestamp:"+SizeOf.sizeOf(new Timestamp(System.currentTimeMillis())));

System.out.println("String_0:"+SizeOf.deepSizeOf(new String()));

System.out.println("String_1:"+SizeOf.deepSizeOf(new String("1")));

System.out.println("String_10:"+SizeOf.deepSizeOf(new String("0123456789")));

System.out.println("String_100:"+SizeOf.deepSizeOf("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"));

System.out.println("StringBuilder:"+SizeOf.deepSizeOf(new StringBuilder()));

System.out.println("BigDecimal:"+SizeOf.deepSizeOf(new BigDecimal("34535643.23")));

System.out.println("BigInteger:"+SizeOf.deepSizeOf(new BigInteger("34535643")));

System.out.println("HashMap:"+SizeOf.deepSizeOf(new HashMap()));

System.out.println("HashMap_0:"+SizeOf.deepSizeOf(new HashMap(0)));

System.out.println("HashMap_100:"+SizeOf.deepSizeOf(new HashMap(100)));

System.out.println("HashMap_10000:" + SizeOf.deepSizeOf(new HashMap(10000)));

System.out.println("ArrayList:"+SizeOf.deepSizeOf(new ArrayList()));

System.out.println("ArrayList_0:"+SizeOf.deepSizeOf(new ArrayList(0)));

System.out.println("ArrayList_100:"+SizeOf.deepSizeOf(new ArrayList(100)));

System.out.println("ArrayList_10000:"+SizeOf.deepSizeOf(new ArrayList(10000)));

System.out.println("LinkedList:"+SizeOf.deepSizeOf(new LinkedList()));

System.out.println("LinkedHashMap:"+SizeOf.deepSizeOf(new LinkedHashMap()));

System.out.println("ClassA:" + SizeOf.deepSizeOf(new ClassA()));

System.out.println("ClassB:"+SizeOf.deepSizeOf(new ClassB()));

System.out.println("ClassC:"+SizeOf.deepSizeOf(new ClassC()));

}

public void testDataSize() throws IOException, IllegalAccessException {

HashMap hm=new HashMap();

System.out.println("HashMap_empty:"+SizeOf.deepSizeOf(hm));

hm.put("id", 1988);

hm.put("createTime", new Date());

hm.put("modifyTime", new Date());

hm.put("name", "张三丰");

hm.put("address","浙江杭州市西湖大道188号808室");

hm.put("age",88);

hm.put("weight",new BigDecimal(88));

hm.put("height",new BigDecimal(188));

hm.put("phone","1388888888");

System.out.println("HashMap_full:" + SizeOf.deepSizeOf(hm));

Emp emp=new Emp();

System.out.println("Emp_empty:"+SizeOf.deepSizeOf(emp));

emp.setId(1988);

emp.setCreateTime(new Timestamp(System.currentTimeMillis()));

emp.setModifyTime(new Timestamp(System.currentTimeMillis()));

emp.setName("张三丰");

emp.setAddress("浙江杭州市西湖大道188号808室");

emp.setAge(28);

emp.setWeight(new BigDecimal("88"));

emp.setHeight(new BigDecimal("188"));

emp.setPhone("13888888888");

System.out.println("Emp_full:"+SizeOf.deepSizeOf(emp));

}

class ClassA{

}

class ClassB extends  ClassA{

}

class ClassC extends  ClassB{

}

class Emp{

private Integer id;

private Timestamp createTime;

private Timestamp modifyTime;

private String name;

private String address;

private Integer age;

private BigDecimal height;

private BigDecimal weight;

private String phone;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public Timestamp getCreateTime() {

return createTime;

}

public void setCreateTime(Timestamp createTime) {

this.createTime = createTime;

}

public Timestamp getModifyTime() {

return modifyTime;

}

public void setModifyTime(Timestamp modifyTime) {

this.modifyTime = modifyTime;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public BigDecimal getHeight() {

return height;

}

public void setHeight(BigDecimal height) {

this.height = height;

}

public BigDecimal getWeight() {

return weight;

}

public void setWeight(BigDecimal weight) {

this.weight = weight;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值