注意细节和习惯(四)

好吧,尽管说,一直认为变量初始化非常重要,但是在不经意之间,像数组,结构体一类的变量就容易忽视初始化。尤其是在粘贴来自别处的代码时,首先粘贴就是一种容易隐含有重大错误的行为,其次,这次直接告诉我,还容易把初始化过程遗漏……

 

今天使用openMP的时候,就因为一个数组没有初始化,结果,导致一个八竿子打不到的地方一直踩内存……凶悍地浪费生命。而这段代码,是从同一个作用域别的地方拷过来的,结果由于在原来的地方,提前初始化了,导致初始化的代码没有拷贝过来……

 

 

在跑openMP的时候,发现cpu的时间是按照核数来算的。怎么说呢,比如只有一个核被用了,那么cpu时间的计算与你的时钟是一样的,如果有8个核在运行,cpu时间就是8倍了,也就是现实跑1s,cpu时间跑8s。

 

单元测试:

 

1.测试用例一定要可以使结果重现,如果每次都不一样,出了问题都不知道去哪里找。

2.测试与硬件相关的程序的性能时,首先,了解程序。其次,了解硬件性能。最后,使用已有的资料设计案例,开干。

 

3.对于文件I/O性能的测试,首先要排除硬盘缓存的干扰,其次,要将数据分为顺序随机I/O,  逆序随机I/O,  纯线性I/O,  完全随机I/O。

 

还有,自动化!!

 

 

 

1.pBlock->table[(hash & (MAX_ITEM_NUM - 1))];

用与运算代替求模运算,换算hash的位置,比求模快多了。

 

2.void*  与 uint* 可以做函数重载

static_cast<uint *>

reinterpret_cast<uint64 *>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值