内存回收机制到底是怎么回事 为什么有这些的程序占用内存反而多呢
- paulcross
- 帖子: 484
- 注册时间: 2006-07-23 20:27
内存回收机制到底是怎么回事 为什么有这些的程序占用内存反而多呢
我一知半解的
c 和c++似乎是没有内存回收机制的 有人说落后了 该淘汰了
应该用有内存回收机制的java .net
但是为什么用c和c++的程序内存占用很少 而java .net的程序占用很多呢
速度上就更没法比了c程序跑起来 比.net java快10倍
这个内存回收机制到底管不管用? 用有它的语言好 还是没它的语言好
c 和c++似乎是没有内存回收机制的 有人说落后了 该淘汰了
应该用有内存回收机制的java .net
但是为什么用c和c++的程序内存占用很少 而java .net的程序占用很多呢
速度上就更没法比了c程序跑起来 比.net java快10倍
这个内存回收机制到底管不管用? 用有它的语言好 还是没它的语言好
- yiding_he
- 帖子: 2677
- 注册时间: 2006-10-25 18:10
- 来自: 长沙
- 联系:
Re: 内存回收机制到底是怎么回事 为什么有这些的程序占用内存反而多呢
内存回收机制(Garbage Collection)的出现并不是为了减少程序使用的内存。它是为了提高开发效率,由运行时自动回收那些不再被访问的内存区段,而不需要开发人员自己写语句来释放。GC 本身是要占用一些内存的,所以使用 GC 的语言编写出来的程序占用内存会更多。
你是自由的。别人也是。
- paulcross
- 帖子: 484
- 注册时间: 2006-07-23 20:27
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
-
- 帖子: 204
- 注册时间: 2008-01-07 16:39
- stlxv
- 论坛版主
- 帖子: 8275
- 注册时间: 2006-05-03 0:39
- 来自: المريخ
Re: 内存回收机制到底是怎么回事 为什么有这些的程序占用内存反而多呢
那个叫“垃圾回收”,C++是有的。paulcross 写了:我一知半解的
c 和c++似乎是没有内存回收机制的 有人说落后了 该淘汰了
应该用有内存回收机制的java .net
但是为什么用c和c++的程序内存占用很少 而java .net的程序占用很多呢
速度上就更没法比了c程序跑起来 比.net java快10倍
这个内存回收机制到底管不管用? 用有它的语言好 还是没它的语言好
例如下面的C++程序:
代码: 全选
#include <iostream>
using namespace std;
class a {
public:
~a() { cout << "自动回收a的一个实例" << endl; };
};
void gc_show() {
a x;
} // <-- 这里,在返回的时候,会自动回收x
int main() {
gc_show();
cout << "END" << endl;
}
代码: 全选
class a = object end;;
let x = new a;; (* <-- 你不需要再写代码来删除这个对象了 *)
代码: 全选
public class a {
public static void main(String [] args) {
new a(); /* <-- 你不需要再写代码来删除这个对象了 */
}
}
PHP是最好的语言!不服来战!
- paulcross
- 帖子: 484
- 注册时间: 2006-07-23 20:27
- matri
- 帖子: 1140
- 注册时间: 2006-10-27 11:14
- 来自: 悉尼
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- paulcross
- 帖子: 484
- 注册时间: 2006-07-23 20:27
- stlxv
- 论坛版主
- 帖子: 8275
- 注册时间: 2006-05-03 0:39
- 来自: المريخ
- paulcross
- 帖子: 484
- 注册时间: 2006-07-23 20:27
- stlxv
- 论坛版主
- 帖子: 8275
- 注册时间: 2006-05-03 0:39
- 来自: المريخ