C#调用C++ dll的函数,在C++里面用QueryPerformanceCounter和QueryPerformancePrequency在底层记录某个导出函数执行消耗的时间(记录函数开始的时间和结束的时间,两者相减),在C#里面也用类似的方法记录该函数(从C++ DLL导出)执行的时间(C#里面没开多线程),经常出现在C#里面记录的时间比C++里面记录的时间多数个毫秒的情况。这个应用对时间非常敏感。不知道这个现象是什么原因造成的,以及有没有解决的办法。
1条回答 默认 最新
- threenewbee 2023-04-27 19:20关注
这个是接口调用的开销,因为C#底层是通过LoadLibrary动态加载调用的,而不是静态库直接调用的。
解决办法是C++再写一个函数,那里直接调用返回时间值,C#直接取其中的值。本回答被专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 AI大模型精调(百度千帆、飞浆)
- ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
- ¥15 非科班怎么跑代码?如何导数据和调参
- ¥15 福州市的全人群死因监测点死亡原因报表
- ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
- ¥15 系统2008r2 装机配置推荐一下
- ¥500 服务器搭建cisco AnyConnect vpn
- ¥15 悬赏Python-playwright部署在centos7上
- ¥15 psoc creator软件有没有人能远程安装啊
- ¥15 快速扫描算法求解Eikonal方程咨询