Discussion:
这里会C的人应该很多的吧?来玩玩这个
(时间太久无法回复)
snnn
2009-10-31 12:18:46 UTC
Permalink
int main(){
void* p=malloc(512*1024*1024);
sleep(10000000);
return 0;
}

把这个程序编译了,然后开10-100个。(先不管你的物理内存是多大)
会怎样呢?

内存真的会不够吗?

我先去试下。预告:我用的是windows 7 x64
acc
2009-10-31 12:57:33 UTC
Permalink
¿ªÁœÈýžö»¹¿ÉÒÔ :D
Post by snnn
int main(){
void* p=malloc(512*1024*1024);
sleep(10000000);
return 0;
}
°ÑÕâžö³ÌÐò±àÒëÁË£¬È»ºó¿ª10-100žö¡££šÏȲ»¹ÜÄãµÄÎïÀíÄÚŽæÊǶàŽó£©
»áÔõÑùÄØ£¿
ÄÚŽæÕæµÄ»á²»¹»Âð£¿
ÎÒÏÈÈ¥ÊÔÏ¡£Ô€žæ£ºÎÒÓõÄÊÇwindows 7 x64
snnn
2009-10-31 18:23:44 UTC
Permalink
开两三个还可以 :D
接着,执行一次malloc需要很久
接着,某一次,我黑屏了。机器彻底没响应。
我绝望的按Alt+F4、Ctrl+Alt+Del,等了几分钟后。桌面又显示出来了
我赶紧把剩下的窗口关掉。


据说,在有的系统上,malloc并不真的分配物理内存,而只是分配地址空间。只有
在该页面第一次被引用的时候才会真的分配。而free从来都不释放物理内存,只有
当系统内存不够用的时候才释放。

看来win不是如此。

p.s.不能拿malloc来测试。因为debug版的malloc可能会做特殊填充。这个操作将
会导致页面被引用。得拿系统具体的API做测试。

附系统日志如下:
Warning 2009/11/1 2:09:11 Diagnostics-Performance 500 Desktop Window
Manager Monitoring
The Desktop Window Manager is experiencing heavy resource contention.
Scenario : The Desktop Window Manager responsiveness has degraded.

Warning 2009/11/1 2:09:11 Diagnostics-Performance 501 Desktop Window
Manager Monitoring
The Desktop Window Manager is experiencing heavy resource contention.
Reason : CPU resources are over-utilized.
Diagnosis : A consistent degradation in frame rate for the Desktop
Window Manager was observed over a period of time.
tyh_123
2009-10-31 13:12:25 UTC
Permalink
²»ÊìÏ€CÀïÃæÄÚŽæ·ÖÅäµÄ»úÖÆ¡£

˵ʵ»°mallocÎÒ¶Œ»¹²»ÖªµÀÊÇʲΡ£

Ö»ÖªµÀÀàËÆnew£¬·ÅÔÚ¶ÑÀïÃæµÄ¡£
Post by snnn
int main(){
void* p=malloc(512*1024*1024);
sleep(10000000);
return 0;
}
°ÑÕâžö³ÌÐò±àÒëÁË£¬È»ºó¿ª10-100žö¡££šÏȲ»¹ÜÄãµÄÎïÀíÄÚŽæÊǶàŽó£©
»áÔõÑùÄØ£¿
ÄÚŽæÕæµÄ»á²»¹»Âð£¿
ÎÒÏÈÈ¥ÊÔÏ¡£Ô€žæ£ºÎÒÓõÄÊÇwindows 7 x64
acc
2009-10-31 19:02:58 UTC
Permalink
²»»á°Éë˹£¬Äãɶϵͳ°¡£¬ÎÒ˵¿ªÁœÈýžö»¹¿ÉÒÔ£¬ÄÇʱºòÎÒ¿ªÁË 8 žöÁË¡£

"Moses" <***@gmail.com> ÐŽÈëÏûÏ¢ÐÂÎÅ:hchrva$ckt$***@www.shinco.com...
Ò»žöŸÍÒÑŸ­ÕâÑùÁË, ²»žÒÔÙ¿ª¶à.......
Moses
2009-11-02 04:19:07 UTC
Permalink
啊, 不会吧, 我在多个系统下测试运行后都是内存飙升, 你的不会这样吗?
不会吧毛斯,你啥系统啊,我说开两三个还可以,那时候我开了 8 个了。
一个就已经这样了, 不敢再开多.......
acc
2009-11-02 04:28:56 UTC
Permalink
ì­ÉýÊǿ϶š»áì­ÉýµÄ¡£ÎÊÌâÊÇËüÃÇÓõĶŒÊÇÐéÄâÄڎ棬ÎïÀíÄÚŽæ²»¹»Ê±»á±»œ»»»³öÈ¥¡£×ܵÄÉÏÏ޿϶šÓУ¬µ«ÊÇÄ㿪žö 7¡¢8 žöûÎÊÌâ¡£Ä㿪 7¡¢8 žöÊÔÊÔ£¬¿Ž¿ŽÄÚŽæÕŒÓÃÇúÏߵIJš¶¯¡£

ÒòΪŸßÌåÔ­ÀíÎÒ˵²»Çå³þ£¬ËùÒÔûžÒÏêÏžÌÖÂÛ¡£

"Moses" <***@gmail.com> ÐŽÈëÏûÏ¢ÐÂÎÅ:hclmjv$4t3$***@moses.motzarella.org...
°¡, ²»»á°É, ÎÒÔÚ¶àžöϵͳϲâÊÔÔËÐкó¶ŒÊÇÄÚŽæì­Éý, ÄãµÄ²»»áÕâÑùÂð?
·çÖÐ֜ҳ
2009-11-14 17:34:03 UTC
Permalink
你太狠了。。。。。

曾经为了试试MMU的性能,在板子上申请大内存。。。:)
Post by snnn
int main(){
void* p=malloc(512*1024*1024);
sleep(10000000);
return 0;
}
把这个程序编译了,然后开10-100个。(先不管你的物理内存是多大)
会怎样呢?
内存真的会不够吗?
我先去试下。预告:我用的是windows 7 x64
--
把问题先交给google,然后再交给你的朋友。。。

http://fzhzhy.is-programmer.com/
Loading...