当前位置:网站首页>一个程序最多可以使用多少内存?
一个程序最多可以使用多少内存?
2022-07-25 15:07:00 【weixin_42709563】
在虚拟地址模式下,一个程序可以使用的内存容量跟计算机的物理内存(也就是你的内存条)没有关系,它由虚拟地址的取值范围决定。
32位操作系统
在32位操作系统中,程序能使用的最大内存是 4GB,也就是2的32次方。即使你的电脑安装的是16G的内存条也没用,剩下的12G只能空闲着。
让你买那么大的内存,浪费了吧!
64位操作系统
在64位操作系统中,理论上能够访问的虚拟地址的范围是 2^64。
这是一个很大的值,几乎是无限的,就目前的技术来讲,不但物理内存不可能做到这么大,CPU的寻址能力也没有这么大,实现64位长的虚拟地址只会增加系统的复杂度,带不来任何好处。
Windows 和 Linux 都对虚拟地址进行了限制,仅使用虚拟地址的低48位(6个字节),总的虚拟地址大小为 2^48 = 256TB。
256TB也太大了吧,量子计算机时代才会用这么多内存吧!
操作系统还要占用内存
操作系统也是一个程序,而且是其他程序的领导,要时刻管理其他程序,谁不听话就惩罚他,让他崩溃。
反之,普通程序也需要操作系统的帮助,尤其是在访问硬件时,例如分配内存、打开硬盘上的文件、在屏幕上绘画等。
操作系统和普通程序既相爱又相恨。
为了达到又爱又恨的目的,操作系统也要占用一部分内存。
32位的Windows默认占用4GB中的2GB,程序只能使用剩下的2GB。
32位的Linux默认占用4GB中的1GB,程序只能使用剩下的3GB。
64位的Windows默认占用256TB中的248TB,程序只能使用剩下的8TB。
64位的Linux默认占用256TB中的128TB,程序只能使用剩下的128TB。
当然,操作系统占用的内存是可以通过设置来更改的。
总起来说,程序能使用多大的内存由操作系统决定,不同的操作系统、不同的位数都会不一样。
现在我们使用的操作系统大都是64位的了,内存已经足够使用了,所以如果你不缺银子,就使劲升级内存吧,多多益善,不会浪费的。
边栏推荐
- Leo-sam: tightly coupled laser inertial odometer with smoothing and mapping
- Install entityframework method
- Implement a simple restful API server
- 继承的实现过程及ES5和ES6实现的区别
- [C topic] Li Kou 88. merge two ordered arrays
- 瀑布流布局
- 32 use of chrome debugging tools
- pkg_resources动态加载插件
- "Ask every day" how locksupport realizes thread waiting and wakeup
- Leetcode combination sum + pruning
猜你喜欢

如何解决Visual Stuido2019 30天体验期过后的登陆问题

Gonzalez Digital Image Processing Chapter 1 Introduction

oracle_ 12505 error resolution

"Ask every day" briefly talk about JMM / talk about your understanding of JMM

"Ask every day" reentrantlock locks and unlocks

node学习

43 box model

Splice a field of the list set into a single string

43 盒子模型

Unable to start web server when Nacos starts
随机推荐
万能通用智能JS表单验证
I hope some suggestions on SQL optimization can help you who are tortured by SQL like me
Overview of cloud security technology development
41 picture background synthesis - colorful navigation map
ES5写继承的思路
Promise对象与宏任务、微任务
"How to use" observer mode
QT connect, signal, slot and lambda comparison
ESXI6.7.0 升级到7.0U3f(2022年7月12 更新)
LeetCode第 303 场周赛
MySQL的登陆【数据库系统】
37 element mode (inline element, block element, inline block element)
"Ask every day" briefly talk about JMM / talk about your understanding of JMM
Yes, UDP protocol can also be used to request DNS server
LeetCode_ String_ Medium_ 151. Reverse the words in the string
没错,请求DNS服务器还可以使用UDP协议
关于RDBMS和非RDBMS【数据库系统】
Boosting之GBDT源码分析
Solve the error caused by too large file when uploading file by asp.net
处理ORACLE死锁