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

1665

被折叠的 条评论
为什么被折叠?



