编写高效的C#图像处理程序(4) Rgb=>Lab,C# vs. C++(VC)

简介:

在 《编写高效的C#图像处理程序(3) Rgb=>Lab,图像缺陷检测的例子》 一文中比较了 C#/Unsafe 和 P/Invoke/C情况下的性能,本文比较 C#/Unsafe 和 C++(VC)下的性能。

为消除两种语言的测试区别,C#版本查表时使用指针而非数组,VC下使用无Stride的Rgb24,相关测试代码见 下载链接 。

这又形成了4个测试用例:

H- C#,非查表;I-C#,查表; J-C++,非查表; K-C++,查表

C# 版为 .Net 4.0, VS2010 ,代码中选择快速一项为测试I,不选择为测试H。

C++版 - VS2008。选择快速一项为测试K,不选择为测试J。

测试结果(毫秒):

图像2,大小:1845×611

H: 31  29  36  32 
I:  10  10  10  10 
J:  39  33  33  30 
K:  9    8    8    8

图像3,大小:3888×2592

H: 195  194  194  195 
I:  53    52    51    52 
J: 220  218  218  222 
K: 41   42    41   41

结论:

C#下图像开发在性能上是很给力的!还在犹豫什么呢?WPF强大的UI交互功能(Layout,缩放,控件体系……)结合C#/Unsafe高效的性能,是一套超级无敌的技术组合!在xp下WPF的性能还是有点杯具,呃呃呃,在Win7下,WPF是相当给力的!

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2011/01/30/1947937.html如需转载请自行联系原作者


xiaotie 集异璧实验室(GEBLAB)

相关文章
|
22天前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
111 0
|
1月前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
|
1月前
|
编译器 Linux C++
3C++程序的编写和实现
3C++程序的编写和实现
17 2
|
1月前
|
C++ 开发者
2C++的程序的构成和书写形式
2C++的程序的构成和书写形式
16 2
|
3月前
|
C# 开发者
C# 9.0中的模块初始化器:程序启动的新控制点
【1月更文挑战第14天】本文介绍了C# 9.0中引入的新特性——模块初始化器(Module initializers)。模块初始化器允许开发者在程序集加载时执行特定代码,为类型初始化提供了更细粒度的控制。文章详细阐述了模块初始化器的语法、用途以及与传统类型初始化器的区别,并通过示例代码展示了如何在实际项目中应用这一新特性。
|
3月前
|
编译器 C# 开发者
C# 9.0中的顶级语句:简化程序入口的新特性
【1月更文挑战第13天】本文介绍了C# 9.0中引入的顶级语句(Top-level statements)特性,该特性允许开发者在不使用传统的类和方法结构的情况下编写简洁的程序入口代码。文章详细阐述了顶级语句的语法、使用场景以及与传统程序结构的区别,并通过示例代码展示了其在实际应用中的便捷性。
|
24天前
|
算法 编译器 C语言
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
38 1
|
28天前
|
Java C# 开发工具
第一个C#程序
第一个C#程序
12 0
|
29天前
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
60 0
|
29天前
|
缓存 编译器 程序员
C/C++编译器全局优化技术:全局优化是针对整个程序进行的优化,包括函数之间的优化
C/C++编译器全局优化技术:全局优化是针对整个程序进行的优化,包括函数之间的优化
25 0