免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6337 | 回复: 21
打印 上一主题 下一主题

程序退出缓慢的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-15 10:33 |只看该作者 |倒序浏览
遇到一个奇怪的问题,每次程序退出到最后一句return 0之前,好像休眠了一样,要等几分钟才退出。通过top命令查看,该进程还存在,只是一直是“S”状态,并且占用一些内存资源,开始一直怀疑是os调度问题,后来发现好像和这个没有关系。



一直搞不明白,为什么还剩最后一句return了,程序不立即退出呢?是有一些全局变量或资源没有释放么?麻烦高手指点!

论坛徽章:
0
2 [报告]
发表于 2009-07-15 11:16 |只看该作者
OS调度的问题,太忙了,顾不过来?
或者,你的代码里面真有蹊跷?

论坛徽章:
0
3 [报告]
发表于 2009-07-15 11:17 |只看该作者
你怎么知道是在return前一句,而不是return后

论坛徽章:
0
4 [报告]
发表于 2009-07-15 11:20 |只看该作者
是不是别的库注册了atexit的问题

论坛徽章:
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
5 [报告]
发表于 2009-07-15 11:37 |只看该作者
如果是C++的话,也许是全局的对象析构所花费的时间

论坛徽章:
0
6 [报告]
发表于 2009-07-15 12:04 |只看该作者
原帖由 prolj 于 2009-7-15 11:16 发表
OS调度的问题,太忙了,顾不过来?
或者,你的代码里面真有蹊跷?



我原来以为是这个问题,发现不同机器退出的快慢是不一样的,后来觉得不太可能,因为os的版本是一致的。

论坛徽章:
0
7 [报告]
发表于 2009-07-15 12:04 |只看该作者
原帖由 bobozhang 于 2009-7-15 11:17 发表
你怎么知道是在return前一句,而不是return后



我确定是在return之前一句,我在程序里打了log确定的。

论坛徽章:
0
8 [报告]
发表于 2009-07-15 12:49 |只看该作者
就一句return,不可能很慢呀!还几分钟!!
能把代码贴出来吗??

论坛徽章:
0
9 [报告]
发表于 2009-07-15 14:26 |只看该作者
原帖由 airhello 于 2009-7-15 12:49 发表
就一句return,不可能很慢呀!还几分钟!!
能把代码贴出来吗??



没有什么复杂的逻辑,最后的代码片段是:


int main(int argc,char* argv[])
{
        /*以上省略若干行*/
        StopService();
        INFO(("所有资源释放完成,准备关闭日志"));
        /*关闭日志*/
        LOG_CLOSE();

        printf("Done!\n");
        return 0;
}


在程序退出时,眼看着打印了Done,接着就该执行return 0了吧,这时候程序就停在那了。

论坛徽章:
0
10 [报告]
发表于 2009-07-15 14:27 |只看该作者
原帖由 reiase 于 2009-7-15 11:20 发表
是不是别的库注册了atexit的问题



这个怎么才能确定呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP