您的位置:首页 > 编程语言 > C语言/C++

C++/CLI C#调用dll速度比较和内存分配时间测试

2007-03-02 14:03 591 查看
[align=center] [/align]
[align=center]ref class in dll[/align]
[align=center]value class in dll[/align]
[align=center]C#环境中运行时间(ms)[/align]
[align=center]594-609[/align]
[align=left]CalRef calref = new CalRef();[/align]
[align=left]res = calref.GetResult();[/align]
[align=center] [/align]
[align=center]484-500[/align]
[align=left]CalValue calrref = new CalValue();[/align]
[align=left]res = calrref.GetResult();[/align]
[align=center] [/align]
[align=left] CalValue calval;[/align]
[align=left] res = calval.GetResult();[/align]
[align=center] [/align]
[align=center]C++/CLI环境中运行时间(ms)[/align]
[align=center]594-609[/align]
[align=left]CalRef ^calref = gcnew CalRef;[/align]
[align=left]res = calref->GetResult();[/align]
[align=left] [/align]
[align=left] CalRef calrref;[/align]
[align=left] res = calrref.GetResult();[/align]
[align=left] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center]10000[/align]
[align=left]CalValue *calval = new CalValue;[/align]
[align=left]res = calval->GetResult();[/align]
[align=center] [/align]
[align=center]484-500[/align]
[align=left] CalValue calval;[/align]
[align=left] res = calval.GetResult();[/align]
[align=center] [/align]
我使用c++/cli建立了一个dll文件,实验中,分别在C++/cli和C#环境中调用1000000次,考察在不同语言下的调用速度。表中红色数字是建立1000000次类对象的总耗时。下面的代码是建立类对象的代码。

在C++/CLI中,调用ref class类一共耗时594-610ms, 在栈中建立value class类一共耗时484-500ms,但是在堆中建立value class类一共耗时10000ms
在C#中,调用ref class类一共耗时609ms,在栈或堆中建立value class类一共耗时484-500ms
可以看出,生成dll文件后,不同语言的调用速度基本一致,但是在C++/CLI中,在堆上建立value class类耗时很长。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐