社区
C++ 语言
帖子详情
c++单层和多层dll是否影响性能
请叫我杨二哥
2015-06-25 04:51:33
我开发了一个程序,程序中有几个dll,我开始的时候只有一个dll当测试程序直接调用这个dll时,
test-》dll2
程序性能(运行时间在ns级)还勉强满足了boss的要求,但是由于某些需求的提出,
我在测试程序和刚开始的那个dll之间添加了一个dll变成了
test->dll1-》dll2
程序的运行性能足足下降了一倍的 比如之前是 1000ns 现在变成了2000ns还有多!
请问 是不是由于中间多加了一个dll导致的性能下降?
...全文
330
10
打赏
收藏
c++单层和多层dll是否影响性能
我开发了一个程序,程序中有几个dll,我开始的时候只有一个dll当测试程序直接调用这个dll时, test-》dll2 程序性能(运行时间在ns级)还勉强满足了boss的要求,但是由于某些需求的提出, 我在测试程序和刚开始的那个dll之间添加了一个dll变成了 test->dll1-》dll2 程序的运行性能足足下降了一倍的 比如之前是 1000ns 现在变成了2000ns还有多! 请问 是不是由于中间多加了一个dll导致的性能下降?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
至少我认为不是,看看你都改了什么代码吧
枚举 USB HUB 设备
枚举所有的USB设备,
多层
枚举
数据库应用系统开发 ADODOTNET 共90页.pptx
数据库应用系统开发 ADODOTNET 共90页.pptx
用ATL建立轻量级的COM对象
ATL——活动模板库(The Active Template Library),其设计旨在让人们用
C++
方便灵活地开发COM对象。ATL本身相当小巧灵活,这是它最大的优点。用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时
DLL
s支持。
C++
深度学习库——cpp-DeepLearningLibrary深入解析
本文还有配套的精品资源,点击获取 简介:cpp-DeepLearningLibrary(
DLL
)是一个为
C++
开发者优化的高
性能
深度学习库,它重点实现了限制玻尔兹曼机(RBM)和深层信念网络(DBN),同时兼容其他类型的神经网络。
DLL
库旨在提供高效、易于集成和扩展的深度学习解决方案。它包括了RBM和DBN的训练实现,支持卷积网络在图像处理和计算机视觉任务中的应用,以及对其...
C++
操作 json 文件(使用jsoncpp)
前人栽树,后人乘凉,声明部分引用自:
C++
之
C++
操作 json 文件(
C++
读写json文件)及jsoncpp配置详解
C++
构造和解析Json
C++
中JSON的使用详解 一.介绍 1.什么是Json? JSON是一种轻量级的数据交互格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,实际项目中经常用到,相比xml有很多优点。 2. Json与其他数据存储方式比较 为什么要用json文件呢? 我们最常使用的存储数据的方式有很多,比如利用txt文件存,利用xml存,利用
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章