共 15 篇文章 |
|
TCMalloc给每个线程分配了一个线程局部缓存。需要的话,会将对象从中央数据结构移动到线程局部缓存中,同时定期的垃圾收集将用于把内存从线程局部缓存迁移回中央数据结构中。例如,下面的跨度a占据了2个页面,跨度b占据了1个页面,跨度c占据了5个页面最后跨度d占据了3个页面。这个算法有个很好的特性是,如果某个线程不再使用某个特定的尺寸时... 阅439 转2 评0 公众公开 12-06-14 11:02 |
_cdecl _stdcall _fastcall _declspec详解_cdecl _stdcall _fastcall _declspec 详解2010-12-23 21:39.1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,__declspec主要是用于说明DLL的引出函数的,在某些情况下用__declspec(dllexport)在DLL中生命引出函数,比用传统的DEF文件方便一些.在普通程... 阅89 转0 评0 公众公开 12-05-29 18:05 |
仅适用于返回指针的函数声明或定义,如,CRT的malloc函数:__declspec(restrict) void *malloc(size_t size);它告诉编译器该函数返回的指针不会与任何其它的指针混淆。一个函数被__declspec(noreturn)所修饰,那么它的含义是告诉编译器,这个函数不会返回,其结果是让编译器知道被修饰为__declspec(noreturn)的函数之后的代码不可到达。只有全... 阅100 转1 评0 公众公开 12-05-29 18:04 |
【 声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing @163.com】早在八月份的时候,就陆陆续续写了二十多篇用汇编语言看C++的博客内容。在此为了做一个概括,也为了朋友们看起来更方便,我们利用这么一篇博客对所有的文章做一个总结。如果有朋友们在观看的过程当中发现了问题,恳请多多指教,谢谢。 阅17 转0 评0 公众公开 12-03-16 18:19 |
与此相对应的apple b才是函数中真正定义的临时变量,因为在下面不远处有apple的两个函数——apple的构造函数和apple的析构函数哦。0040D4EC lea eax,[ebp-4] 0040D4EF mov dword ptr [ebp-8],eax 14: *p++;0040D4F2 mov ecx,dword ptr [ebp-8] 0040D4F5 add ecx,1 0040D4F8 mov d... 阅39 转1 评0 公众公开 12-03-16 18:18 |
ISample<FileStream> iFs = iS;而当iS实际指向一个ISample<FileStream>的时候,foo函数要求的是一个FileStream对象。在这里,使用iFs的时候,因为T的类型被指定为FileStream,foo的名义签名为 void foo(FileStream t),所以我们有可能将一个FileStream类型的对象传递给foo函数。而当iFs实际指向一个ISample<Stream>时,foo的... 阅58 转0 评0 公众公开 12-03-15 11:20 |
那是因为,当我们希望修改Foo函数,使它能够适应所有类型的迭代器时,我们可以这样写:template <typename I> //这里的I可以是任意类型的迭代器typename I::value_type Foo(I i){这样,我们可以通过 Traits<myIterator>::value_type 来获得myIterator的value_type,于是我们把Foo函数改写成:template <typename I> //这里的... 阅24 转0 评0 公众公开 12-03-15 11:07 |
#define TTL_FUNC_BUILD_FUNCTOR_CALLER(n) \ template< typename R, TTL_TPARAMS(n) >\ struct functor_caller_base##n \ ///...那么,核心部分在于TTL_TPARAMS(n)这个宏,可以看出这个宏最终产生的是:typename T1typename T1, typename T2typename T1, typename T2, typename T3///... 阅84 转0 评0 公众公开 12-03-14 16:58 |
王者归来。但主要是因为Performance就是钱,因为前面的三个因素,性能影响的是dollar,不尊重性能的公司都会发现花钱的速度太快了。4)Herb还给了一张幻灯片问,“The World is built on ….”,后面例出了多个语言。6)Herb举了一个微软内的例子,用C++ 和 ATL 来开发IE工具条的报告,因为用.NET或是脚本有重大的limitation,也就是性能问题。9)... 阅65 转0 评0 公众公开 12-02-03 15:28 |
mov eax, AutoScopeTrace::~AutoScopeTrace;最简单的workaround是把它 定义为空串,虽然可读性变差了点儿,但是因为源文件名和代码行都记录了,错误定位是没问题的:#ifndef __FUNCTION__#define __FUNCTION__ ""#endif // __FUNCTION__第二个问题是VC6不支持这样的用法:mov eax, AutoScopeTrace::~AutoScopeTrace;实际上析构函数Au... 阅63 转0 评0 公众公开 11-12-01 20:18 |