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

来源:互联网 发布:淘宝兼职怎么找真的 编辑:程序博客网 时间:2024/05/22 09:38
  
 
ref class in dll
value class in dll
C#环境中运行时间(ms)
594-609
CalRef calref = new CalRef();
res = calref.GetResult();
 
484-500
CalValue calrref = new CalValue();
res = calrref.GetResult();
 
       CalValue calval;
       res = calval.GetResult();
 
C++/CLI环境中运行时间(ms)
594-609
CalRef ^calref = gcnew CalRef;
res = calref->GetResult();
 
       CalRef calrref;
       res = calrref.GetResult();
 
 
 
10000
CalValue *calval = new CalValue;
res = calval->GetResult();
 
484-500
       CalValue calval;
       res = calval.GetResult();
 
 
我使用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类耗时很长。
原创粉丝点击