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

    技术2022-05-11  66

      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类耗时很长。

    最新回复(0)