如何评估一个js 对象 内存大小所占内存空间的大小

TA的推荐TA的最新馆藏[转]&[转]&主题 : 求助,问个可能是个比较小白的问题。。怎样返回一个实例对象占用内存大小,谢啦~
级别: 新手上路
可可豆: 167 CB
威望: 167 点
在线时间: 162(时)
发自: Web Page
求助,问个可能是个比较小白的问题。。怎样返回一个实例对象占用内存大小,谢啦~&&&
如题,例如一个webview在加载了一个网页之后,通过哪个方法或函数能得到这个对象占用的内存空间大小?谢谢~
级别: 新手上路
可可豆: 167 CB
威望: 167 点
在线时间: 162(时)
发自: Web Page
回 楼主(greatloong) 的帖子
自己顶~求答案~
级别: 精灵王
UID: 32359
可可豆: 6982 CB
威望: 6982 点
在线时间: 376(时)
发自: Web Page
据我所知没有函数能查看,你可以用instruments里面的内存查看工具来看
关注手游领域中,欢迎共同探讨~邮箱:zhaoxy_博客:http://blog.csdn.net/zhaoxy2850
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版您现在的位置:&&>>&&>>&&>>&&>>&正文
如何查看java对象所占的内存大小
  return (obj == null) // skip visited object
  || visited.containsKey(obj);
  private static long internalSizeOf(Object obj, Stack&Object& stack,
  Map&Object, Object& visited) {
  if (skipObject(obj, visited)) {
  return 0;
  visited.put(obj, null);
  long result = 0;
  // get size of object + primitive variables + member pointers
  result += SizeOfAgent.sizeOf(obj);
  // process all array elements
  Class clazz = obj.getClass();
  if (clazz.isArray()) {
  if (clazz.getName().length() != 2) {// skip primitive type array
  int length = Array.getLength(obj);
  for (int i = 0; i & i++) {
  stack.add(Array.get(obj, i));
  // process all fields of the object
  while (clazz != null) {
  Field[] fields = clazz.getDeclaredFields();
  for (int i = 0; i & fields. i++) {
  if (!Modifier.isStatic(fields[i].getModifiers())) {
  if (fields[i].getType().isPrimitive()) {
   // skip primitive fields
  } else {
  fields[i].setAccessible(true);
  // objects to be estimated are put to stack
  Object objectToAdd = fields[i].get(obj);
  if (objectToAdd != null) {
  stack.add(objectToAdd);
  } catch (IllegalAccessException ex) {
  clazz = clazz.getSuperclass();
  然后我们可以做一个:
  public class Test {
  static class Person{
  private S
  private S
  public Person(int id, String name, String address) {
  this.id =
  this.name =
  this.address =
  public static void main(String[] args) throws Exception {
  Person p = new Person(12, "xujsh","bj");
  long size = SizeOfAgent.fullSizeOf(p);
  System.out.println(size);
  切换到命令行:
  D:\workspace\objsize\src&java -version
  java version "1.6.0_22"
  (TM) SE Runtime Environment (build 1.6.0_22-b04)
   HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
  D:\workspace\objsize\src&javac com/bj58/test/*.java
  D:\workspace\objsize\src&jar -cvfm size.jar MANIFEST.MF com/bj58/test/*
【责编:ivy】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航#pragma pack(8)
#include&iostream&
//有一个整数型数据
这里需要注意内存对齐
//4&span style=&white-space:pre&&
void show(){}//0
//8&span style=&white-space:pre&&
virtual void show(){}//4
virtual指针
(系统是64位,8*8,故指针字节数8)
int main(int argc,char**argv)
cout&&&sizeof A=&&&sizeof(a)&&
cout&&&sizeof B=&&&sizeof(b)&&
cout&&&sizeof C=&&&sizeof(c)&&
cout&&&sizeof D=&&&sizeof(d)&&
cout&&&sizeof E=&&&sizeof(e)&&
sizeof A=1
sizeof B=4
sizeof C=16
sizeof D=16
sizeof E=24
在面试中有时会问到某个类或对象所占内存的大小,今天先总结一下,其实这涉及到C++的内存布局,等以后有时间好好总结一下,今天就把想到的一些记录一下:
1.&&&&&&&普通的成员函数不会占内存,但是普通的成员变量占内存
2.&&&&&&&Static的变量和函数都不会占内存。
3.&&&&&&&Virtual成员函数(包括纯虚函数)会占内存,因为会有一个vptr指向virtual table的原因,所以不管有多少个virtual函数,均只占一个sizeof(vptr)=4
4.&&&&&&&派生类:需要加上其基类的size
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:32548次
积分:1550
积分:1550
排名:千里之外
原创:105篇
转载:140篇
(2)(1)(1)(23)(28)(21)(3)(8)(1)(16)(6)(13)(17)(32)(33)(7)(25)(11)

我要回帖

更多关于 评估对象 的文章

 

随机推荐