1、如何读取超大文件到内存;
文件分割; 逐行读取;
2、mysql地备份方式;
数据库文件备份; 数据库文件同步; 主备同步;
3、虚函数和纯虚函数;
首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 在基类中实现纯虚函数的方法是在函数原型后加"=0"; 定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。
4、防止忘记释放指针,内存泄漏地方法;
查看代码中new/delete或者malloc/free是否成对出现 在类中追加一个静态变量 static int count;在构造函数中执行count++;在析构函数中执行count–;,通过在程序结束前将所有类析构,之后输出静态变量,看count的值是否为0,如果为0,则问题并非出现在该处,如果不为0,则是该类型对象没有完全释放。 检查类中申请的空间是否完全释放,尤其是存在继承父类的情况,看看子类中是否调用了父类的析构函数,有可能会因为子类析构时没有释放父类中申请的内存空间。 对于函数中申请的临时空间,认真检查,是否存在提前跳出函数的地方没有释放内存。
5、core文件里面没有堆栈信息时,如何排查问题;
子线程中的core,无法捕获调用函数栈信息。 发现目前系统中启动的dumper是加了 -t 参数的。虽然介绍 -t 是捕获出问题的线程。去掉测试一下,就可以抓到子线程的core了。理论上-t 不应该区分在哪个线程产生core而都应该捕获的;
6、delete []地含义
|