一、从/proc/self/maps中看到的内存布局 在这个输出中,可以很容易看到一个so文件中有一个" p"属性的区间段,它们对应哪些文件内容,数据从哪里来?在stackoverflow网站上也有一个这样的提问,只是还没有人解答。tsecer@harry: cat /proc/self/maps ...
分类:
其他好文 时间:
2019-08-19 13:19:33
阅读次数:
241
对象头 在hotspot中对象指针称为oop(ordinary object pointer),而oopDesc则是对象头的结构.。除了Klass(之所以叫klass是因为class是C++关键字)指针外,,还由一个_mark字段,,是因为除了对象的class信息以外,还有一些对象信息需要保留, 比 ...
分类:
其他好文 时间:
2019-08-11 10:48:45
阅读次数:
220
指针的内存布局 先看下面的例子 大家都知道这是定义了一个指针p,但是p到底是什么东西呢?还记得第1章里说过“任何数据类型我们都可以把它当成一个模子”吗?p,毫无疑问,是某个模子“咔”出来的。我们也讨论过,任何模子都必须有特定的大小,这样才能“咔咔咔”。那“咔”出p这个模子到底是什么样子呢?它占多大的 ...
分类:
其他好文 时间:
2019-08-07 09:28:58
阅读次数:
101
最近项目使用的C++的版本到C++11了,但是由于有些静态库(.a)没有源码,因此链接时还在使用非C++11版本的库文件。目前跑了几天,似乎是没出什么问题,但是我还是想说一下这样做有哪些潜在的风险。 首先需要说明的是,升级到C++11之后,部分std的数据结构的内存布局有可能发生改变(待考究)。最开 ...
分类:
编程语言 时间:
2019-07-10 09:13:33
阅读次数:
163
对象的创建 对象创建的几种方式 一、 用new来创建 二、 克隆 三、 Class对象和Constructor中的newInstance()方法 四、 反序列化 对象创建的过程(不包括数组对象和Class对象的创建) 一、 类加载,如果该对象对应的类还没有被加载到内存中则会就行类的加载,可能会涉及到 ...
分类:
其他好文 时间:
2019-05-30 23:29:39
阅读次数:
253
概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, ...
分类:
编程语言 时间:
2019-05-11 21:51:57
阅读次数:
164
在介绍jvm的类加载机制之前补充一些知识。 java虚拟机是一个通用的、机器无关的执行平台,是为了实现程序的”无关性“而设计的,这里的无关性包括平台无关性 + 语言无关性。各种不同平台的虚拟机都使用统一的程序存储格式--字节码,这是构成无关性的基石。Java虚拟机不与任何语言绑定(包括java语言) ...
分类:
其他好文 时间:
2019-05-05 23:29:00
阅读次数:
148
关于C++的内存处理,可分为三大块,分别是: (一)内存管理机制 (二)内存泄露处理 (三)内存回收机制 这篇文章将就(一)内存管理机制 进行深入探讨,如有错误欢迎大家指正。 C++的内存管理也可细分为 1. 程序内存布局 2. 内存的分配方式 3. 常见内存错误及对策 一. 程序内存布局 查了相关 ...
分类:
编程语言 时间:
2019-03-12 23:57:03
阅读次数:
313
大家在面试一些B轮以上的公司,很多面试大佬都会问怎么优化tableView或者iOS程序如何优化等。本篇博客将讲述iOS性能优化,围绕以下问题讲述: 一、内存 二、Runloop 三、界面 下面我们一一讲述上面内容。 一、内存 1.1 内存布局 代码的文件是可执行的二进制文件,在二进制文件中,我们怎 ...
分类:
移动开发 时间:
2019-02-27 01:13:10
阅读次数:
214
垃圾收集器 如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现 Serial收集器 串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用串行回收;新生代复制算法、老年代标记 压缩;垃圾收集的过程中会Stop The World( ...
分类:
其他好文 时间:
2019-02-10 12:08:35
阅读次数:
216