Java8新特性简介 a)速度更快 1.对于JVM内存模型的新定义,将方法区从堆内存中移除,以前HotSpot JVM堆内存分为三块:1.年轻代 2.年老代 3.持久代(即方法区),点击回顾 取而代之的是 MetaSpace 元空间 - 直接依赖于物理内存,而非由JVM向系统申请 2.对于HashM ...
分类:
编程语言 时间:
2018-02-14 22:38:12
阅读次数:
290
一、前言 在linux内核中支持3中内存模型,分别是flat memory model,Discontiguous memory model和sparse memory model。所谓memory model,其实就是从cpu的角度看,其物理内存的分布情况,在linux kernel中,使用什么的 ...
分类:
系统相关 时间:
2018-02-13 23:40:54
阅读次数:
450
本文主要分析/proc/meminfo文件的各种输出信息的具体含义。 一、MemTotal MemTotal对应当前系统中可以使用的物理内存。 这个域实际是对应内核中的totalram_pages这个全局变量的,定义如下: unsigned long totalram_pages __read_mo ...
分类:
其他好文 时间:
2018-02-13 23:38:57
阅读次数:
299
Linux kernel组织管理物理内存的方式是buddy system(伙伴系统),而物理内存碎片正式buddy system的弱点之一,为了预防以及解决碎片问题,kernel采取了一些实用技术,这里将对这些技术进行总结归纳。 1 低内存时整合碎片 从buddy申请内存页,如果找不到合适的页,则会 ...
分类:
系统相关 时间:
2018-02-13 22:55:36
阅读次数:
243
Linux的物理内存管理采用了以页为单位的buddy system(伙伴系统),但是很多情况下,内核仅仅需要一个较小的对象空间,而且这些小块的空间对于不同对象又是变化的、不可预测的,所以需要一种类似用户空间堆内存的管理机制(malloc/free)。然而内核对对象的管理又有一定的特殊性,有些对象的访 ...
分类:
其他好文 时间:
2018-02-13 22:52:31
阅读次数:
225
今天我们来谈谈Linux的内存机制。 首先我们理一下概念 一、什么是linux的内存机制? 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。物理内存就是系统硬件提供的内存大小,是真正的内 ...
分类:
系统相关 时间:
2018-02-13 19:53:20
阅读次数:
258
Linux进程间通信——使用共享内存 下面将讲解进程间通信的另一种方式,使用共享内存。 一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是 在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将 ...
分类:
其他好文 时间:
2018-02-13 17:58:44
阅读次数:
148
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。 Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空 ...
分类:
系统相关 时间:
2018-02-13 17:56:59
阅读次数:
1468
其中介绍了虚拟内存的机制以及mmap系统调用的实现。mmap允许直接将设备内存映射到用户进程的地址空间中。物理内存的管理,包括缓存的分配及回收,请页机制,交换空间等。 1)交换模块(swap) 这个模块负责控制内存内容的换入换出,它通过替换机制,使得物理内存的页框(RAM页)中保留有效的逻辑页,即从 ...
分类:
系统相关 时间:
2018-02-13 17:52:30
阅读次数:
224
kmalloc()和vmalloc()介绍kmalloc()用于申请较小的、连续的物理内存1. 以字节为单位进行分配,在<linux/slab.h>中2. void *kmalloc(size_t size, int flags) 分配的内存物理地址上连续,虚拟地址上自然连续3. gfp_mask标 ...
分类:
其他好文 时间:
2018-02-12 18:51:24
阅读次数:
169