[讨论]64位的ubuntu内存消耗怎么这么大
- boreascn
- 帖子: 385
- 注册时间: 2008-03-26 14:28
[讨论]64位的ubuntu内存消耗怎么这么大
8.04.1-amd64版本的。对比32位版本安装的软件。一开机内存就到300m+了,运行一会儿就到500M+了。我在32位下一般很少超过200m的。这内存消耗未免反差也太大了吧。
-
- 帖子: 2841
- 注册时间: 2006-09-11 22:47
Re: [讨论]64位的ubuntu内存消耗怎么这么大
Linux缺省报告内存的方式会把实际没有被程序占用的内存也报告为占用,要使用windows那样的报告策略,清这样看:boreascn 写了:8.04.1-amd64版本的。对比32位版本安装的软件。一开机内存就到300m+了,运行一会儿就到500M+了。我在32位下一般很少超过200m的。这内存消耗未免反差也太大了吧。
$ free -m | grep cache
total used free shared buffers cached
-/+ buffers/cache: 240 253
$
输入 free -m | grep cache,然后上面这个表示 使用了240M内存,剩余 253M内存。
- luojie-dune
- 帖子: 22033
- 注册时间: 2007-07-30 18:28
- 系统: Linux
- 来自: 空气中
- boreascn
- 帖子: 385
- 注册时间: 2008-03-26 14:28
- boreascn
- 帖子: 385
- 注册时间: 2008-03-26 14:28
Re: [讨论]64位的ubuntu内存消耗怎么这么大
我的结果是poet 写了:Linux缺省报告内存的方式会把实际没有被程序占用的内存也报告为占用,要使用windows那样的报告策略,清这样看:boreascn 写了:8.04.1-amd64版本的。对比32位版本安装的软件。一开机内存就到300m+了,运行一会儿就到500M+了。我在32位下一般很少超过200m的。这内存消耗未免反差也太大了吧。
$ free -m | grep cache
total used free shared buffers cached
-/+ buffers/cache: 240 253
$
输入 free -m | grep cache,然后上面这个表示 使用了240M内存,剩余 253M内存。
free -m | grep cache
total used free shared buffers cached
-/+ buffers/cache: 508 1505
- boreascn
- 帖子: 385
- 注册时间: 2008-03-26 14:28
- hcym
- 帖子: 15634
- 注册时间: 2007-05-06 2:46
- szjuntao
- 帖子: 285
- 注册时间: 2008-01-25 9:55
- 来自: 深圳中學高中部
- foolegg
- 帖子: 249
- 注册时间: 2007-12-01 14:56
嗯,对于c语言来说
我在32位win系统下用mingw编译,指针占4字节
在64位linux系统下用gcc编译,指针占8字节
想来64位系统为了操作更大的内存,或是为了配合cpu位宽,增加了指针位数
4字节可以表示:
2^4^8 = 4294967296
以字节为最小单位
4294967296 byte = 4194304 kb = 4096 mb = 4 g
8字节就是:
2^8^8 = 18446744073709551616
18446744073709551616 byte = 18014398509481984 kb = 17592186044416 mb = 17179869184 g
..............真是高瞻远瞩的.......眼光啊.......
内核之类的东西,指针可能用的比较少
但是大多数应用程序,以及数据结构构建,都是大量使用指针的
所以光是这一点,就会带来相当大的内存占用差异
对于大量使用内部指针的语言(比如java),可能差异会更明显
声明
编程只是个人爱好,非专业人士,如有谬误,概不负责-_-
ps:欢迎指正
我在32位win系统下用mingw编译,指针占4字节
在64位linux系统下用gcc编译,指针占8字节
想来64位系统为了操作更大的内存,或是为了配合cpu位宽,增加了指针位数
4字节可以表示:
2^4^8 = 4294967296
以字节为最小单位
4294967296 byte = 4194304 kb = 4096 mb = 4 g
8字节就是:
2^8^8 = 18446744073709551616
18446744073709551616 byte = 18014398509481984 kb = 17592186044416 mb = 17179869184 g
..............真是高瞻远瞩的.......眼光啊.......
内核之类的东西,指针可能用的比较少
但是大多数应用程序,以及数据结构构建,都是大量使用指针的
所以光是这一点,就会带来相当大的内存占用差异
对于大量使用内部指针的语言(比如java),可能差异会更明显
声明
编程只是个人爱好,非专业人士,如有谬误,概不负责-_-
ps:欢迎指正
上次由 foolegg 在 2008-08-09 17:24,总共编辑 2 次。
- hyd0215
- 帖子: 107
- 注册时间: 2006-06-22 1:11
- boreascn
- 帖子: 385
- 注册时间: 2008-03-26 14:28
在ubuntuforums上找到的答案和你一样。就是pointer占用内存更多。。foolegg 写了:嗯,对于c语言来说
我在32位win系统下用mingw编译,指针占4字节
在64位linux系统下用gcc编译,指针占8字节
想来64位系统为了操作更大的内存,或是为了配合cpu位宽,增加了指针位数
4字节可以表示:
2^4^8 = 4294967296
以字节为最小单位
4294967296 byte = 4194304 kb = 4096 mb = 4 g
8字节就是:
2^8^8 = 18446744073709551616
18446744073709551616 byte = 18014398509481984 kb = 17592186044416 mb = 17179869184 g
..............真是高瞻远瞩的.......眼光啊.......
内核之类的东西,指针可能用的比较少
但是大多数应用程序,以及数据结构构建,都是大量使用指针的
所以光是这一点,就会带来相当大的内存占用差异
对于大量使用内部指针的语言(比如java),可能差异会更明显
声明
编程只是个人爱好,非专业人士,如有谬误,概不负责-_-
ps:欢迎指正