摘要:
一直以来没分清什么时候该使用assert,什么时候该使用if。现在将其记录下来assert 用于检查参数的合法性以及某个预期的结果等,assert只在debug模式中在在。assert是面向程序员的,而不是面向用户,主要方便程序员能够检查及快速定位程序的逻辑错误(程序员自身带来的问题),如果在调试程... 阅读全文
摘要:
为什么要使用inline函数?对于频繁被调用的小函数来说,每次调用都要保存当前寄存器,传递参数,以及结果后恢复之前的状态需要一定的开销。如果将其声明为inline,则在调用处会直接对其展开,由于函数较小,所以并不会对生成的二进制文件太大。将函数返回类型加上关键字inline就将函数指定为inline... 阅读全文
摘要:
leveldb中实现了一个简单的内存管理工具Arena,其基本思想为:先预先向系统申请一块内存,此后需要申请内存时,直接到预先分配的内存中申请。那么这样做的目的是什么呢?(1)避免了频率地进行malloc/new和free/delete操作,同时对于内存管理变得简单,对于内存的释放工作交给Arena... 阅读全文