开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2633|回复: 10
收起左侧

[图文资料] 在你的程序中,不要调用太多的DLL库!!

[复制链接]
结帖率:100% (1/1)
发表于 2012-3-4 22:47:59 | 显示全部楼层 |阅读模式   陕西省西安市
本帖最后由 |流年灬一逝| 于 2012-9-24 21:24 编辑

有些人认为API函数就是王道,用它可以代替易语言某些支持库。
每一次调用一个API,即使是1个API,那么程序也会将整个DLL文件加载一下,当然,是在你没有做绑定DLL的前提下.
有些人说:
加载一下?不就是LoadLibrary吗?
其实不是的。系统在打开一个程序之前,会把所有用到的DLL文件进行处理,处理,即写入IAT表(即导入表)、INT等,完成这些操作,是非常之慢的.除非你在之前绑定了DLL.
因此,建议大家不要使用太多的API,声明我不知道,我只知道使用了API,就得把整个DLL处理,哪怕你的程序只是调用了一个API函数
有些人也说,那易语言支持库是不是也要加载DLL啊?
是的,易语言支持库相当于一个DLL,编译出易程序后,会把所有的支持库进行一次load。

有些API函数,通过逆向完全可以代替,网上也有一些API逆向的文章,读一下他们,用汇编代替一下,跟LOAD相比,效率简直省了多少。
楼下的朋友也说“这点效率”,我想说,效率都是堆积成的,为什么大型游戏,尤其是3d,基本要用纯汇编来写?
原因就在于汇编效率很高,但是为了这点效率,多少程序员在日夜的想算法,华为公司累死员工就是一个例子。
对于易语言程序来说,效率就更为重要了,有做过逆向的朋友可能知道,易语言四则运算,基本都是浮点数操作,这让CPU丢失多少效率?
CPU周期在你写一个算法之中就一个一个的丢失,这点效率难道不重要?
LOAD一下DLLLIBRARY,对磁盘数据拷贝,这又是多少效率?

当然,发此贴的目的不是让大家禁掉API,而是让大家知道,API也有利弊的,能不用尽量不用,API函数也很强大,它是写WINDOWS的必须,但是我建议大家尽量只使用 KERNEL32,USER32,GDI32这三个windowschildsystem,因为用他们既可以保证程序的功能强大,也可以保证浪费不必要的LOAD,剩下一点效率,如果大家以后写商业软件,这点效率会减少很多崩溃的用户。


签到天数: 3 天

发表于 2012-11-2 09:42:13 | 显示全部楼层   广西壮族自治区南宁市
个人觉得说得有一定道理
回复 支持 反对

使用道具 举报

发表于 2012-10-23 17:19:59 | 显示全部楼层   湖北省武汉市
先收下良师警句
回复 支持 反对

使用道具 举报

结帖率:54% (39/72)
发表于 2012-10-6 12:34:47 | 显示全部楼层   江苏省无锡市

收藏了  ,,等有一定基础了  在来理解
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
 楼主| 发表于 2012-9-24 12:28:06 | 显示全部楼层   陕西省安康市
虚心进步 发表于 2012-9-24 07:34
楼主 说实话. 你说别人智商有问题.往往自己就有.

不要用太多API.  会导致程序开启时速度慢..      这个 ...

我觉得你智商也有问题。
我是说尽量不用。但没说不让用。
像CreateWindowEx这类函数,不用是不行的.
但是像获取一些东西,比如获取调试器标志。逆向一下就可以知道,网上也有些逆向API的文章,直接照着这些汇编用不必调用系统提供的快?
计算机速度快是快,但对于我们这些讲究效率的来说,这点效率不能忽视。
希望你以后看清楚帖子再说。
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 2 天

发表于 2012-9-24 07:34:33 | 显示全部楼层   湖北省黄冈市
楼主 说实话. 你说别人智商有问题.往往自己就有.

不要用太多API.  会导致程序开启时速度慢..      这个理由让我感觉蛋疼..  计算机计算速度知道是多少吗.在么这个慢?

API最主要优点让编程变的容易了..  但另一方面弊端是.离开了WINDOS平台.. 变得完全不会!

点评

我觉得你智商也有问题。 我是说尽量不用。但没说不让用。 像CreateWindowEx这类函数,不用是不行的. 但是像获取一些东西,比如获取调试器标志。逆向一下就可以知道,网上也有些逆向API的文章,直接照着这些汇编用   陕西省安康市  详情 回复 发表于 2012-9-24 12:28
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)

签到天数: 1 天

发表于 2012-9-3 21:35:05 | 显示全部楼层   上海市上海市
那支持库里面本来就有API,用了以后不是慢上加慢?
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
 楼主| 发表于 2012-4-20 23:48:04 | 显示全部楼层   陕西省渭南市
小磊 发表于 2012-4-20 23:40
难道你指望吴涛用纯汇编帮你写支持库么

支持库是DLL的,DLL也可以用其他语言写出来.
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)

签到天数: 1 天

发表于 2012-4-20 23:40:21 | 显示全部楼层   上海市上海市
难道你指望吴涛用纯汇编帮你写支持库么

点评

这头像没我帅。哈哈   湖南省娄底市  发表于 2012-9-3 20:52
回复 支持 反对

使用道具 举报

发表于 2012-4-12 10:05:03 | 显示全部楼层   河北省石家庄市
收藏了  ,,等有一定基础了  在来理解
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表