摘要:
结构化异常能够使程序处理各种异常情况,能获取更多的异常信息, 仔细处理异常会更好的了解异常发生的原因并解决它。而普通的 结构化异常和C++混用会有一些问题,比如: __try { std::string str;// Error 3 error C2712: Cannot use __try in functions that require object unwinding } __f...
阅读全文
摘要:
某次给美工发布完场景编辑器后发现在他机器上时间走的很不正常, 像粒子,草体,树叶都动的特别快。但是在我机器上就没这个问题。 最后经过检查发现是GetPerformanceCounter出的问题。现在多核 的机器已经很普遍了,而多核的机器GetPerformanceCounter返回的 结果可能会不正确(由于bios或其它硬件的bug)。如果想获取正确的值 需要用SetThreadAffinityM...
阅读全文
摘要:
一般在使用std::map插入一个元素时都会这样使用,比如: typedef std::map map_t; map_t testmap; testmap [1] = “One”; testmap [2] = “Two” 这样非常直观,但存在一个性能的问题。插入2时,先在_map中查找主键为2的项,没发现,然后将一个新的对象插入_map,键是2,值是一个空字符串,插入完成后,将字符串赋为"Two"...
阅读全文
摘要:
#pragma pack是指定数据在内存中的对齐方式, 例如: #pragma pack(push, 4) 就是按四字节对齐. 对于一个结构或类来说,其数据成员按照指定大小与成员本身大小的最小值对齐,而这个类 本身则按照类的最大成员大小和指定大小的最小值对齐。如果类的数据成员也是一个类,其是 按照成员类中最大成员大小和指定大小的最小值对齐。 例子: #pragma pack(push, 4...
阅读全文