摘要:File:Intrinsics头文件描述:指令集描述VS:Visual Studio版本号VisualStudio:Visual Studio版本名File描述VSVisualStudiointrin.hAll Architectures8.02005mmintrin.hMMX intrinsics6.06.0 SP5+PP5xmmintrin.hStreaming SIMD Extensions intrinsics6.06.0 SP5+PP5emmintrin.hWillamette New Instruction intrinsics (SSE2)6.06.0 SP5+PP5pmmint
阅读全文
随笔分类 - C10 C系列
C/C++/C#/Java
摘要:如今64位系统越来越流行了,对于软件开发人员来说,掌握64位开发技术将会有更好的发展空间。而且经过这几年的发展,64位开发工具也成熟了,例如Visual Studio 2010。 关于如何配置64位平台,MSDN上有详细的介绍——http://msdn.microsoft.com/zh-cn/library/9yb4317s.aspx如何:针对 64 位平台配置 Visual C++ 项目 在很多时候,我们希望能兼容老系统,于是配置了两个编译平台——Win32 和 x64。 但光这样做还是不够的,因为老系统不支持某些新功能。所以我们需要在运行时动态动态判断。 最常见的判断有两种——...
阅读全文
摘要:.Net中,字节序(Byte Order)相关处理的类有——System.BitConverter。GetBytes等方法。本机字节序(IsLittleEndian属性)。(程序集:mscorlib)System.IO.BinaryReader。ReadInt32等方法。小端字节序。(程序集:mscorlib)System.IO.BinaryWriter。Write 方法。小端字节序。(程序集:mscorlib)System.Net.IPAddress。HostToNetworkOrder等方法。本机字节序与网络字节序的转换。(程序集:System) 为了彻底处理字节序问题,我决定将这些...
阅读全文
摘要:前面的三次测试都是在同一个项目内的,既处于同一个程序集。那么,跨程序集调用会怎么样呢?
因为为了保证可维护性,我们会把一些常用操作封装到类库中去。然后实际项目开发时,引用该类库,使得解决方案中存在多个项目。编译完成后,将会是一个主要的exe和若干个dll文件,主exe程序集中的代码会调用dll程序集,既形成了跨程序集调用。
分析跨程序集调用的性能,有助优化类库架构的设计。
阅读全文
摘要:上次我分别测试了类与结构体(http://www.cnblogs.com/zyl910/archive/2011/09/19/2186623.html)、密封类(http://www.cnblogs.com/zyl910/archive/2011/09/20/2186622.html)的函数调用速度评测。现在进行进一步分析,解读编译器生成的MSIL(微软中间语言)代码。一、前期准备先找到“IL 反汇编程序”(开始\程序\Microsoft Visual Studio 2010\Microsoft Windows SDK Tools\)——运行“IL 反汇编程序”,打开编译后的exe。展开节点,
阅读全文
摘要:上次我对C#类与结构体做了一次速度评测(http://blog.csdn.net/zyl910/article/details/6788417)。经过一段时间思索,发现还可以进一步探讨——第一、栈变量。上次的“硬编码”,是访问类中的静态变量的。若改为访问函数中的栈变量,性能会不会有所提高?第二、栈分配(stackalloc)。既然要测试栈变量,我们还可以顺便测试一下在栈上分配的内存块的访问性能。第三、64位整数。由于32位系统的成功,我们已经习惯了使用32位整数(int)。现在64位系统逐渐普及,我们得为此做好准备。对于指针操作时经常要用到的偏移量增减运算来说,是使用32位整数,还是使用64位
阅读全文
摘要:以前我一直有个疑惑——在C#中,究竟是类(class)比较快,还是结构体(struct)比较快?当时没有深究。最近我遇到一个难题,需要将一些运算大的指针操作代码给封装一下。原先为了性能,这些代码是以硬编码的形式混杂在算法逻辑之中,不但影响了算法逻辑的可读性,其本身的指针操作代码枯燥、难懂、易写错,不易维护。所以我希望将其封装一下,简化代码编写、提高可维护性,但同时要尽可能地保证性能。由于那些指针操作代码很灵活,简单的封装不能解决问题,还需要用到接口(interface)以实现一些动态调用功能。为了简化代码,还打算实现一些泛型方法。本来还想因32位指针、64位指针的不同而构造泛型类,可惜发现C#
阅读全文