希望的天 希望的天
4年前
synchronized锁升级过程
1.前置知识:    1.1JAVA对象的内存布局      hotspot虚拟机中,普通对象在堆中的存储可以划分成三部分:对象头(包含了MarkWord和类型指针)、实例例数据和padding。JAVA对象的内存布局MarkWord的长度为4byte/8byte,用于存储对象自身的运行时数据
Wesley13 Wesley13
3年前
java类的加载与加载器
java代码在计算机中经历的三个阶段:1.Source源代码阶段(代码还是在硬盘上,并没有进入内存)  Student.java通过javac编译Student.class字节码文件2.类加载器ClassLoader将字节码文件加载进入内存,成为Class类对象(成员变量Field\\fields、构造方法Const
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操作 RabbitMQ、Redis、Memcache、SQLAlchemy
MemcachedMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap(https://www.oschina.net/action/GoToLin
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 的
图计算引擎分析——Gemini
Gemini是目前stateofart的分布式内存图计算引擎,由清华陈文光团队的朱晓伟博士于2016年发表的分布式静态数据分析引擎。Gemini使用以计算为中心的共享内存图分布式HPC引擎。通过自适应选择双模式更新(pull/push),实现通信与计算负载均衡。