社区
C++ 语言
帖子详情
c++单层和多层dll是否影响性能
请叫我杨二哥
2015-06-25 04:51:33
我开发了一个程序,程序中有几个dll,我开始的时候只有一个dll当测试程序直接调用这个dll时,
test-》dll2
程序性能(运行时间在ns级)还勉强满足了boss的要求,但是由于某些需求的提出,
我在测试程序和刚开始的那个dll之间添加了一个dll变成了
test->dll1-》dll2
程序的运行性能足足下降了一倍的 比如之前是 1000ns 现在变成了2000ns还有多!
请问 是不是由于中间多加了一个dll导致的性能下降?
...全文
304
10
打赏
收藏
c++单层和多层dll是否影响性能
我开发了一个程序,程序中有几个dll,我开始的时候只有一个dll当测试程序直接调用这个dll时, test-》dll2 程序性能(运行时间在ns级)还勉强满足了boss的要求,但是由于某些需求的提出, 我在测试程序和刚开始的那个dll之间添加了一个dll变成了 test->dll1-》dll2 程序的运行性能足足下降了一倍的 比如之前是 1000ns 现在变成了2000ns还有多! 请问 是不是由于中间多加了一个dll导致的性能下降?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2015-09-03
打赏
举报
回复
本质上是不影响的。 如果影响了,说明你的代码有问题。 或者你的代码运行速度比 调用 DLL中的函数这个简单功能要快。 也就是说,把很简单的逻辑封装到DLL中,并反复调用,这是完全没有必要的。 DLL中起码要实现一点功能吧,略微有点代码,通常都不会比 调用 DLL中的函数要快。 如果你把 int add(int a,int b){return a+b;}; 或者 int four(){return 4;}; 这样的代码封装到DLL中,那真是完全没有必要。
mujiok2003
2015-09-03
打赏
举报
回复
go profiling
fefe82
2015-09-03
打赏
举报
回复
1. 请确认 debug / release ,以及与优化有关的编译参数(包括所有的可执行程序与dll) 2. 找一个 profiler 确认热点位置。
请叫我杨二哥
2015-07-29
打赏
举报
回复
恩 很感谢大家 不过我仍然没有解决这个问题,我的测试方法是: 1 直接生成dll和lib然后直接在外面通过调用接口函数interface1 ,计算时间 得到的平均时间(10次) 为900ns多一点。 2 另外添加一个dll然后在那个dll中使用接口接口函数interface2 调用上面的接口函数interface1 ,仍然计算该接口函数调用时间,计算平均时间为2000ns多一点。 而且测试了很多次 都是在一样的运行环境下运行的。所以我才提出这么一个疑问。
小竹z
2015-06-26
打赏
举报
回复
楼主要实际测试对比,才有可能找到原因。增加dll肯定会带来开销,但是这种开销是否是程序瓶颈,不好说,必须实际测试。
k1988
2015-06-25
打赏
举报
回复
如果每次中间加了一些显式的loadlibrary和getprocadress之类的函数调用的话应该会有影响
moritz_dev
2015-06-25
打赏
举报
回复
10有89是你代碼逻辑有问题,用pstack多執行幾次,看看逻辑卡在那里了。去對應代碼段優化。
taodm
2015-06-25
打赏
举报
回复
你怎么测的1000ns?
yangyunzhao
2015-06-25
打赏
举报
回复
你的代码是跑在操作系统里面的,压根无法避免多重调用的
ztenv
版主
2015-06-25
打赏
举报
回复
至少我认为不是,看看你都改了什么代码吧
C/
C++
高
性能
服务开发基础
这是一个职业C/
C++
程序员的基础教程,包括C语言基础、
C++
基础和Linux编程基础。
C++
操作 json 文件(使用jsoncpp)
C++
构造和解析Json
C++
中JSON的使用详解 一.介绍 1.什么是Json? JSON是一种轻量级的数据交互格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,实际项目中经常用到,相比xml有很多优点...
C++
Builder的基本功能
C++
Builder的基本功能 我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。但我们更得意的一定是让程序代码赶快变成可执行文件。 无论是在写代码的...
利用WTOPCSvr
DLL
开发OPC服务器指南(英文原版),空的时候再翻译了...很实用
WTOPCSvr
DLL
User’s Guide The WinTECHSoftware Rapid Development
DLL
for OPC Servers, (WTOPCSvr), provides an easy touse API for integrating custom data with OPC. All the details of COM and OPC ar
Delphi 3——
多层
CS的32位快速开发工具
Delphi 3——
多层
C/S的32位快速开发工具 Borland自从推出了Delphi之后,深受程序设计人员的青睐。Delphi的每一个新的版本都给用户提供了更新的功能。例如,Delphi 1.0版本,提供给用户一种全新的可视化的环境, 使用户...
C++ 语言
64,683
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章