免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: daxiguagg
打印 上一主题 下一主题

[C] C语言有没有什么垃圾回收的库 [复制链接]

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
11 [报告]
发表于 2014-03-10 14:18 |只看该作者
bruceteen 发表于 2014-03-10 11:05
为什么要这玩意儿?
我一直很奇怪那些想将GC加入到C/C++中者的意图。甚至连C++标准委员会都开始考虑这JB玩 ...


你来自印度吗?我听说印度人写代码从来不用指针。

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
12 [报告]
发表于 2014-03-10 14:32 |只看该作者
hellioncu 发表于 2014-03-10 13:30
用指针的地方可能是比较多,但需要自己申请释放的地方可以很少。担心有泄露的,说得不客气点,多半是自己设计得不好。

呵呵,结合上下文,我说的就是意思。

你说的“多半是自己设计得不好”我深有同感,我的观点是:
a. 能用 数组 的地方优先用数组
b. 无法用 数组 的地方,C优先VLA,C++优先用std::vector
c. 无法用VLA的地方,将相配的malloc/free集中在同一个函数中,避免打散分散在各个分支中或者嵌套调用中。例如
void foo()
{
    p = malloc ……;
    bar( p );
    free( p );
}
再例如
void foo()
{
    p = construct_list( ....
    bar( p ); // 虽然这个函数中可能间接调用 add_list 等会调用 malloc 的函数,但其分配的内存最终都会被下一句无遗漏的释放
    destruct_list( p );
}

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
13 [报告]
发表于 2014-03-10 14:42 |只看该作者
本帖最后由 shan_ghost 于 2014-03-10 14:43 编辑

回复 12# bruceteen


    +1024

偶android手机内存比较小,又喜欢玩比较大的游戏。连续玩上个把小时,机器就会彻底死掉,触屏无反应,按电源键都没有丝毫动静,只能抠电池……

直到前天,又出现这现象,当时忙别的,暂时没抠电池。谁知过了几分钟,机器忽然又能动了,这才意识到“死机”可能是java的垃圾回收器动作了。

又试过几次,大概需要几分钟到十几分钟不等,终究是能“活”过来的。但抠电池1分钟就重启了,干净彻底。


所以,相比之下,我认为还是抠电池更好用一些。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
14 [报告]
发表于 2014-03-10 14:53 |只看该作者
所以呢,个人看法,我宁可用麻烦点但只要掌握了就可以保证不逼用户抠电池的c/c++,也不用自带抠电池机制——哦不,是垃圾回收机制,抠电池快速方便,我才舍不得黑它呢——的java。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
15 [报告]
发表于 2014-03-10 16:04 |只看该作者
shan_ghost 发表于 2014-03-10 14:53
所以呢,个人看法,我宁可用麻烦点但只要掌握了就可以保证不逼用户抠电池的c/c++,也不用自带抠电池机制—— ...


这里是C版,你黑Java没事

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
16 [报告]
发表于 2014-03-10 16:17 |只看该作者
daxiguagg 发表于 2014-03-10 10:50
C语言有没有什么垃圾回收的库,除了LIBGC,还有别的其他什么吗。


      C语言里没有也不需要有任何隐藏细节的自动机制,程序员自己掌控一切。

论坛徽章:
6
CU大牛徽章
日期:2013-05-20 10:43:41IT运维版块每日发帖之星
日期:2016-07-29 06:20:00IT运维版块每日发帖之星
日期:2016-01-27 06:20:00CU大牛徽章
日期:2013-05-20 10:44:16CU大牛徽章
日期:2013-05-20 10:44:0615-16赛季CBA联赛之广东
日期:2018-03-09 11:17:08
17 [报告]
发表于 2014-03-10 16:29 |只看该作者
shan_ghost 发表于 2014-03-10 14:42
回复 12# bruceteen


java gc 有个步骤就是要stop-the-world,也就是除了gc线程能运行外,其它的线程都只能干等着

论坛徽章:
6
酉鸡
日期:2013-11-04 15:30:02巳蛇
日期:2014-01-23 10:36:23双鱼座
日期:2014-01-23 13:08:332015亚冠之鹿岛鹿角
日期:2015-09-03 14:36:002015亚冠之武里南联
日期:2015-09-18 10:48:1315-16赛季CBA联赛之山西
日期:2016-05-05 00:05:33
18 [报告]
发表于 2014-03-10 16:30 |只看该作者
回帖是为了赞 3楼

论坛徽章:
1
天秤座
日期:2014-04-27 07:42:20
19 [报告]
发表于 2014-03-10 17:13 |只看该作者
都用C了,还要什么自动回收啊。怕麻烦别用C啊,现在那么多的高级语言。。。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
20 [报告]
发表于 2014-03-10 17:14 |只看该作者
hellioncu 发表于 2014-03-10 11:17
用C,为的就是自己掌控一切


for freedom, cheers!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP