自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 Visual Studio性能分析器所使用的性能分析方法解释

性能分析解释使用采样方法进行分析时,分析器以一种类似于调试程序的方式附加到正在运行的进程。然后,分析器会定期中断进程并检查哪个函数处于堆栈顶部以及该函数的代码路径。换句话说,Visual Studio 分析器收集当前进程状态的样本。采样是一种非入侵式统计型分析方法。在函数中收集的样本越多,函数可能执行的处理就越多。Visual Studio 分析器还会收集有关导致此执行的调用路径的信息。因此,此工具可在分析收集的数据后显示整个调用堆栈。默认情况下,Visual Studio 分析器每 1 千万个 CPU 周

2010-11-26 16:14:00 2421

转载 函数调用规范__cdecl和__stdcall的区别一目了然(表格形式)

__cdecl__stdcallC 和 C++ 程序的缺省调用规范为了使用这种调用规范,需要你明确的加上__stdcall (或 WINAPI )文字。即 return-type__stdcall function-name[(argument-list)]在被调用函数 (Callee) 返回后,由调用方(Caller) 调整堆栈。1. 调用方的函数调用2. 被调用函数的执行3. 被调用函数的结果返回4. 调用方清除调整堆栈在被调用函数 (Callee) 返回前,由被调用函数(

2010-10-31 12:29:00 553

转载 vector中循环删除

很普通的算法,在一个循环中检查每个元素,判断条件,如果为真,就删除这个节点,再继续循环。看似简单,但是却一个不大不小的陷阱,这种小问题的结论,总是记不住,每次遇到的时候,都得写一个测试程序来验证,干脆总结一下,做个结论。最简单的方法std::remove_if(_First, _Last, Predicate)STL是用模板实现,简单高效,但是很多情况下,需要在循环中处理其他逻辑,不能直接使用这个函数用erase删除erase有两种原型,删除一个节点和区段删除,对于vector和list,这个操作的定义都是

2010-10-31 11:19:00 3548

原创 Python实现64位整型主机字节顺序和网络字节顺序的转换

使用struct,相当轻松import structdef htonll(Val):    strNative = struct.pack('Q', Val)    BEVal = struct.unpack('!Q', strNative)[0]    return BEValdef ntohll(Val):    strBE = struct.pack('!Q', Val)    NativeVal = struct.unpack('Q', strBE)[0]    return NativeVal

2010-10-31 11:16:00 1268

原创 尾调用(Tail Call)和尾递归(Tail Recursive)

Tail Call(尾调用)是指在调用函数时直接将被调函数的返回值作为调用函数的返回值返回。如果这个调用是调用了调用函数本身(递归调用),这叫做Tail Recursive(尾递归)。使用尾调用的一个优点在于它不消耗额外的调用栈空间,它可以替换当前的栈帧。因此,使用尾调用来替换标准的调用被称作Tail Call Elimination(尾调用消除),或者Tail Call Optimization(尾调用优化)。

2010-10-31 09:57:00 8773 2

转载 VC运行库详解

 许多Visual C++的使用者都碰到过LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found这样的链接错误,而且通常是在使用第三方库时遇到的。对于这个问题,有的朋友可能不知其然,而有的朋友可能知其然却不知其所以然,那么本文就试图为大家彻底解开关于它的种种疑惑。 大家都知道,从

2010-05-18 14:07:00 2161 1

转载 DLL中调用约定和名称修饰(三)

 2、C++编译时函数(非类成员函数)名称修饰当函数使用__cdecl调用约定时,编译器进行以下工作: 1.以?标识函数名的开始,后跟函数名;2.函数名后面以@@YA标识开始,后跟返回值和参数表;3.当函数的返回值或者参数与C++类无关的时候,返回值和参数表以下列代号表示:       B:constD:charE:unsigned charF:shor

2009-05-04 11:30:00 531

转载 DLL中调用约定和名称修饰(二)

 4、thiscallthiscall调用约定是C++中的非静态类成员函数的默认调用约定。thiscall只能被编译器使用,没有相应的关键字,因此不能被程序员指定。采用thiscall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,只是另外通过ECX寄存器传送一个额外的参数:this指针。 这次的例子中将定义一个类,并在类中定义一个成员函数,代码如

2009-05-04 11:29:00 516

转载 DLL中调用约定和名称修饰(一)

 出处:rivershan 的 Blog :http://blog.csdn.net/rivershan/ 关键字:DLL、调用约定、名称修饰、Calling Convention、Name Decoration、Name Mangling 调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规定了该语言的函数中

2009-05-04 11:27:00 833

翻译 Iozone 文件系统基准

IOzone是一个文件系统基准工具,它生成许多文件操作并执行测试。Iozone能够运行于许多平台。这份文档涵盖Iozone所执行的许多不同类型的操作和它的所有命令行参数。Iozone执行以下操作测试文件I/O性能:Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read/

2009-05-03 13:39:00 3610

转载 accept产生的Socket端口是多少?

要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言必称TCP/IP,似乎其它网络协议已经不存在了。对于TCP/IP

2009-05-03 13:33:00 2040 1

转载 翻译:学会理解并编辑fstab

 主要翻译自http://www.tuxfiles.org/linuxhelp/fstab.html,根据自己的理解做了修改和补充 可能玩Linux的朋友都知道fstab这个文件,如果要用好linux,熟悉linux的一些核心配置文件是必要的,而fstab则是其中之一。这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。因此,我们需要理解其中的内容,了解它

2008-07-22 13:49:00 869

翻译 使用IOzone分析NFS的客户端性能

使用IOzone分析NFS的客户端性Don Capps([email protected])Tom McNeal([email protected])    IOzone是一个有用的分析文件系统性能的基准工具,它可以运行于若干不同的平台, 包括Linux,HP-UX的,Solaris等等。它使用文件系统IO作为其主要测试方式,通过一套文件IO请求来表现被测试系统性能,这

2008-07-20 22:24:00 4068

转载 理解VMware虚拟机下网络连接的三种模式

 很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正.   bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力.  在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机

2008-07-18 21:56:00 965

转载 yum是什么?(linux命令)

yum是什么?(linux命令) 一. yum是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题注:为什么要使用yum而不用apt,最简单的原因,Fedora自带二. yum特点*可以同时配置多个资源库(Repository)*简洁的配置文件(/etc/yum.conf

2008-07-18 16:27:00 6994 1

转载 磁盘测试工具iozone,iometer,bonnie++

iozone主页地址:http://www.iozone.org 通过如下操作测试文件IO性能:read, write, re-read, re-write, read backwards, read strided, fread,fwrite, random read, pread, mmap, aio_read, aio_write.iozone具有如下特性:ANSII C source PO

2008-07-17 21:08:00 1751

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除