C#调用C++ dll的问题

C#调用C++ dll的函数,在C++里面用QueryPerformanceCounter和QueryPerformancePrequency在底层记录某个导出函数执行消耗的时间(记录函数开始的时间和结束的时间,两者相减),在C#里面也用类似的方法记录该函数(从C++ DLL导出)执行的时间(C#里面没开多线程),经常出现在C#里面记录的时间比C++里面记录的时间多数个毫秒的情况。这个应用对时间非常敏感。不知道这个现象是什么原因造成的,以及有没有解决的办法。

这个是接口调用的开销,因为C#底层是通过LoadLibrary动态加载调用的,而不是静态库直接调用的。
解决办法是C++再写一个函数,那里直接调用返回时间值,C#直接取其中的值。