CLR内存的概念

简介:

下面总结了CLR内存的概念

每个进程有自己的独立的虚拟地址空间。所有的进程共享一个物理内存,共享同一个页文件(如果有的话)
默认的,32位机器,每个进程有2gb的用户模式的虚拟地址空间。
作为开发人员,只能工作在虚拟地址空间上,不能直接操作物理内存。垃圾回收会在托管堆上分配和释放虚拟内存。
如果使用本地代码,使用win32方法在虚拟地址空间上,这些方法在本地堆上分配和释放虚拟内存。
 
虚拟内存有下面三种状态
空闲。内存块没有被引用并且可以被分配。
保留的。内存块可以由你得到,但是不能由其他应用程序得到
提交。内存块已经被分配了物理存储。
 
虚拟地址空间可能有碎片,当虚拟内存分配的时候。虚拟内存管理器不得不找一个单一的足够大的能满足分配需求的空闲块。即使你有2gb空闲空间,分配2gb空间通常也不会成功除非所有的空闲空间在一个单独的地址块。
 
页文件(虚拟内存)即使被在物理内存压力不大的时候也会被使用,当第一次物理内存压力高的时候。操作系统就必须让物理内存腾出空间来存储数据,它就把物理内存上的数据备份到页文件(虚拟内存)。这些数据不会被放到页上除非必须,所有它可能遭遇物理内存压力很低但还是把数据放到页上的情况
 



















本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/532563  ,如需转载请自行联系原作者







相关文章
|
并行计算 算法 C++
统一内存统一内存的基本概念和使用
统一内存统一内存的基本概念和使用
1797 0
统一内存统一内存的基本概念和使用
|
2月前
|
存储 安全 Java
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
Java面试题:深入探索Java内存模型,Java内存模型中的主内存与工作内存的概念,Java内存模型中的happens-before关系,volatile关键字在Java内存模型中的作用
24 1
|
30天前
|
存储 程序员 C++
内存管理概念 (二)
内存管理概念 (二)
25 1
|
18天前
|
开发框架 监控 .NET
|
30天前
|
存储 算法 程序员
内存管理概念(一)
内存管理概念(一)
43 0
|
4月前
|
存储 缓存 Java
简单介绍一下什么是“工作内存”和“主内存”(JMM中的概念)
该文介绍了Java多线程中`volatile`关键字确保内存可见性的概念。
54 0
|
4月前
|
消息中间件 Linux
【linux进程间通信(二)】共享内存详解以及进程互斥概念
【linux进程间通信(二)】共享内存详解以及进程互斥概念
|
4月前
|
存储
【进程概念】虚拟内存与页表简述
【进程概念】虚拟内存与页表简述
|
4月前
|
消息中间件 Linux
Linux进程间通信(IPC)教程 Linux共享内存介绍:介绍POSIX共享内存的基本概念、用途和编程实践
Linux进程间通信(IPC)教程 Linux共享内存介绍:介绍POSIX共享内存的基本概念、用途和编程实践
102 2
|
4月前
|
存储 Java Python
Python内存管理:基本概念与技巧
Python是一种功能强大的编程语言,广泛应用于各种领域。在Python中,内存管理是一个非常重要的概念,它直接影响到程序的性能和稳定性。本文将详细介绍Python内存管理的各个方面,包括基本概念、原理、技巧和应用,以帮助读者从入门到精通Python内存管理。