希望的天 希望的天
4年前
synchronized锁升级过程
1.前置知识:    1.1JAVA对象的内存布局      hotspot虚拟机中,普通对象在堆中的存储可以划分成三部分:对象头(包含了MarkWord和类型指针)、实例例数据和padding。JAVA对象的内存布局MarkWord的长度为4byte/8byte,用于存储对象自身的运行时数据
CuterCorley CuterCorley
4年前
C语言入门系列之8.指针的概念与应用
一、指针引入指针是C语言中的一个重要的概念,也是C语言的一个重要特色。正确而灵活地运用它,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组等。掌握指针的应用,可以使程序简洁、紧凑、高效。可以说,不掌握指针就是没有掌握C的精华。1.地址的概念数据在内存中的存储和读取如下:内存区的每一个字节有一个编号,称为地址
Stella981 Stella981
3年前
Redis——常见面试题
  一、memcached与redis的区别?  1.存储方式不同。memcached把数据全部存在内存之中,断电之后会挂掉,而redis虽然也用到了内存,但是会有部分数据存在硬盘中,保证数据持久性。  2.数据支持类型不同。memcached对数据支持比较简单,而redis支持数据类型较丰富,如string、list、set、sorted
Wesley13 Wesley13
3年前
PHP查询MySQL大量数据的内存占用分析
这篇文章主要是从原理,手册和源码分析在PHP中查询MySQL返回大量结果时,内存占用的问题,同时对使用MySQLCAPI也有涉及.    昨天,有同事在PHP讨论群里提到,他做的一个项目由于MySQL查询返回的结果太多(达10万条),从而导致PHP内存不够用.所以,他问,在执行下面的代码遍历返回的MySQL结果之前,数据是否已经在
Stella981 Stella981
3年前
Python在计算内存时应该注意的问题
我之前的一篇文章(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%2F8f259oIGCQtY6KFSx4KW6Q),带大家揭晓了Python在给内置对象分配内存时的5个奇怪而有趣的小秘密。文中使用了sys.getsizeof()来计
Stella981 Stella981
3年前
JVM学习总结(六)内存分配与回收策略
_对象优先在新生代Eden区中分配_当Eden区没有足够空间进行分配时,虚拟机将发起一次MinorGC,虚拟机提供了XX:PrintGCDetails这个收集器日志参数。MinorGC与FullGC比较:新生代GC(MinorGC)指发生在新生代的垃圾回收,Java对象大多具备朝生熄灭的特性,所以MinorGC非常频
Wesley13 Wesley13
3年前
oracle buffer cache深度分析:概念以及内存结构
本文首先具体介绍了Oracle中buffercache的概念以及所包含的内存结构。然后结合各个后台进程(包括DBWRn、CKPT、LGWR等)深入介绍了oracle对于buffercache的治理机制,并具体解释了oracle为什么会采用现在的治理机制,是为了解决什么问题。比如为何会引入toUCh次数、为何会引入增量检查点等等。最后全面介绍了有关buf
Stella981 Stella981
3年前
Golang教程:指针
什么是指针指针是存储一个变量的内存地址的变量。  !(https://oscimg.oschina.net/oscnet/70c3337580dba5f227a4b71b2f73d6ba527.png)在上图中,变量 b 的值是 156,存储在地址为 0x1040a124 的内存中。变量 a 存储了变量 b 的
Wesley13 Wesley13
3年前
Java构造器的实质作用
Java构造器的实质作用构造器的本质作用就是为对象初始化,即为实例变量初始化,赋初值;而不是创建对象,创建对象时通过new关键字来完成的,当使用new关键字时就会为该对象在堆内存中开辟一块内存,只等构造器来初始化这块内存,为实例变量赋初始值。在未赋初始值之前是默认值。看代码中的构造器和编译后构造器是不一样的,编译后的构造器包含了更多的内容。
图计算引擎分析——Gemini
Gemini是目前stateofart的分布式内存图计算引擎,由清华陈文光团队的朱晓伟博士于2016年发表的分布式静态数据分析引擎。Gemini使用以计算为中心的共享内存图分布式HPC引擎。通过自适应选择双模式更新(pull/push),实现通信与计算负载均衡。