c++
葛俊在新泽西
本人微博:葛俊在新泽西
展开
-
Cache与内存二三事
本文搜集了几个与内存和缓存相关的技巧,对于代码调优比较有帮助。即使你在工作中不需要写出极致性能的代码,也应该读一下这篇文章。因为看似对软件工程师透明的内存以及CPU Cache,其实并不“透明”,代码的细微差别可能明显的影响缓存以及内存的性能。1.会导致缺页中断的内存分配下文代码采用两种方式分配pBuffer,请比对两种不同方式的耗时。#include "stdafx.h"#inc...转载 2019-11-02 22:50:56 · 520 阅读 · 0 评论 -
如何强制vc检查自定义函数的格式字符串是否合法
如果自定义的log函数采用类似printf的格式字符串的话,visual studio 2017没有提供编译选项检查格式是否有效。我们可以用下面的技巧强制检查。#define LOG_WRAPPER(...) mylog(__VA_ARGS__); if(false) printf(__VA_ARGS__); else;这样就可以强制VC检查格式字符串是否合法。之所以要在最后加 else;...原创 2019-04-14 12:13:56 · 162 阅读 · 0 评论 -
死锁二三事
最近解了一些死锁的bug。问题代码如下:lock.enter();//do something with so much codelock.leave();然后,“do something”代码块抛出异常,导致锁没有被释放。这里的问题是上面的代码在持有锁的时候做了太多的事情,我们使用锁的原则应该是快进快出。最初,我的解决方法如下,但我后来发现就算这么实现,如果“do someth...原创 2019-04-22 21:23:22 · 157 阅读 · 0 评论 -
C和C++ 你必须知道的知识点
C和C++的知识浩如烟海,但是下面的知识点是我们一定要知道的,也是面试过程中大概率会问到的。这篇文章的内容我会不定期更新。1.结构体对齐这是面试中最常问的一个问题。下面是我多年前整理的一篇文章,讲解得十分详细。http://tassardge.blog.163.com/blog/static/172301708200810955123227/2.forward、move、左值和右值...原创 2019-09-29 22:59:23 · 202 阅读 · 0 评论