C 内存泄漏 CPU占用率过高问题

本文探讨了代码中常见的问题——CPU占用率过高和内存泄漏,并提供了有效的解决方案。通过在空循环中加入sleep延时来降低CPU占用,强调了正确管理动态内存的重要性,包括使用fopen后必须fclose,malloc后需free,new后应delete。同时,文章提醒开发者注意数据库操作和文件读写的正确关闭,避免不必要的内存消耗。

一。CPU占用率过高

while(1);空循环应加sleep延时。会造成CPU占用率过高

内存泄漏

二。内存泄漏 (fopen后要记得fclose,malloc之后要记得free,new之后要记得delete)

1.分配动态内存忘记释放

     ifconfig_value = (char*)malloc(20);  

     free(ifconfig_value);  

2.数据库打开忘记关闭 

       rc = sqlite3_open("GateWay.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件

       sqlite3_free_table( azResult );//释放掉 azResult 的内存空间
       sqlite3_close(db); //关闭数据库

3.文件打开忘记关闭内存泄漏,不断的消耗内存,尤其是频繁的查询数据库,一定要用一次关一次

    int fd = open("/proc/net/dev", O_RDONLY | O_EXCL);  

    close(fd);  //)会让数据写回磁盘, 并释放该文件所占用的资源. 参数fd 为先前由open()或creat()所返回的文件描述词.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值