Memory Efficiency in C++
今天在帮朋友看Program的时候,得到了一个严重的教训。
看看以下两个写法:
Way 1:
int main(){
int x;
for(int i = 0; i<300; i++){
x = 50;
}
}
Way 2:
int main(){
for(int i = 0; i<300; i++){
int x = 50;
}
}
在Loop里面Declare int x,以及在Loop以外Declare int x,其实是有非常大的差别。
在Loop里面Declare int x,会导致电脑不断开启新的Memory位子给x。
在Loop外面的便只开一次位子。
这会导致原本很简单的Program,无端端占了一大片RAM。
这现象便叫做Memory Leak。
像我朋友的更惨,他需要把183张的照片丢进RAM里,以编辑一个3D图像。
就因为有几个类似这样的错误,导致他的Program无端端占了好几倍的RAM。
结果RAM直接爆满,GG。
Programming真是一件需要经验的东西。
- 要发表评论,请先登录
- 红点: Chinkang's Weblog
- 浏览原文
- 863次阅读



















