开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 833|回复: 19
打印 上一主题 下一主题
收起左侧

[闲聊] 关于写配置文件快与慢这回事!

[复制链接]
结帖率:100% (22/22)
跳转到指定楼层
发表于 2025-3-9 13:11:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   广东省惠州市
其实,有没那位朋友做过研究?在给1个配置文件读写时(包括字节集等一起打包在一个文件进行读写), 1,用取字节集中间,等字节集的操作写读快?
2,还是用JSON写读配置?
3,数据库操作写读快? 其实,我一直就用字节集的操作写读.未用过其它!有没都用过的说说效果!?





结帖率:100% (10/10)
16
发表于 2025-3-11 23:26:34 | 只看该作者   山西省太原市
https://125.confly.eu.org/forum.php?mod ... rtype=1#pid29955200
你来打造这个新版本易语言吧,
回复 支持 反对

使用道具 举报

签到天数: 6 天

15
发表于 2025-3-11 12:00:09 | 只看该作者   浙江省金华市
自定义的格式,且有字节数组这种东西  一般是  弄个对象 存储的时候序列化到文件  读取都在内存内进行了。不存在性能问题。打比方一个哈希表。读写速度快,保存的时候自己序列化到文件即可
回复 支持 反对

使用道具 举报

签到天数: 5 天

14
发表于 2025-3-9 21:44:59 | 只看该作者   山东省滨州市
禁回忆 发表于 2025-3-9 20:39
非特殊场景且同等技术力的情况下,肯定是读文件二进制数据>读文件文本>数据库>读文本解析json。
直接进行字 ...

@笨来无一悟 没啊,说的是同技术力的情况下,上边写错一个地方,读文件文本<数据库读写,对于有一定规模的数据量读写,你想自己读二进制数据,写起来太麻烦,数据库就是做这个的,就没必要重复造轮子了
回复 支持 反对

使用道具 举报

签到天数: 5 天

13
发表于 2025-3-9 20:39:21 | 只看该作者   山东省滨州市
非特殊场景且同等技术力的情况下,肯定是读文件二进制数据>读文件文本>数据库>读文本解析json。
直接进行字节集的读写操作,不需要序列化/反序列化,结构固定,直接读到指定的结构中就能用,就是维护成本太高,你需求简单的话可以用,越往后维护,那就相当于你自己做了个数据库了。这种你参考游戏的存档文件就好。
大数据量的情况下还是采用数据库,你正常见到的数据库都对磁盘读写进行了大量的优化,带索引、带缓存,还带事务,数据量够大的情况下数据库能保证你不需要关心持久化存储的问题,还有超高的效率。
json的方案基本上不用想了,json结构本身就存在冗余,词法分析+语法分析消耗性能,保存的文件虽然可读但是数据量一上来跟不可读没什么区别,进行网络传输或跨平台数据交互时考虑json的

点评

维护的问题也没有太大 可以新增一个文件 又不是非得所有的配置写一个文件里面 数据格式固定的就一个文件 会变动的另外用别的方式呗   贵州省毕节市  发表于 2025-3-9 20:51
回复 支持 反对

使用道具 举报

结帖率:83% (39/47)

签到天数: 11 天

12
发表于 2025-3-9 19:21:59 | 只看该作者   福建省宁德市
要速度快就用内存文件映射+自定义内存数据结构+纯指针读写数据
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 10 天

11
发表于 2025-3-9 18:45:36 | 只看该作者   贵州省毕节市
{1,2,3,4,5}一个字节集就代表一个配置 读第一个 0就是关闭 非0就是打开 第2345  4个字节 可以是一个整数 比如记录的是窗口的宽度
快不快 不知道 你就说小不小

点评

{1,2,3,4,5,6,7,8}比如保存窗口的宽高 8字节大小的文件就够了 一个整数 4字节   贵州省毕节市  发表于 2025-3-9 18:49
回复 支持 反对

使用道具 举报

结帖率:100% (53/53)

签到天数: 11 天

10
发表于 2025-3-9 16:16:55 | 只看该作者   福建省宁德市
最快的肯定是直接字节集读写快啊

INI配置文件结构最简单,解析代码逻辑分支少
1.找节点,行首[节点]行尾
2.找键名,行首键名=
3.找键值,键名=+行尾



json、数据库其它优势不说,就说路径代码解析就很多开销,json的路径、数组、对象解析,还要额外分支判断键值的格式有没有错误,转义、数据编码(Unicode),数据库也类似,读写前也是要做丰富的代码语句解析。

效率最快的自然还是直接字节集处理了,灵活度高,需要大批量的场景下还可以自定义缓冲区等优化
写操作的话,INI、json随着数据量的增加就没有数据库效率高了,每次写操作都要进行数据后移,数据库除了可变长的字段,其它字段写操作都是覆盖写
回复 支持 反对

使用道具 举报

签到天数: 7 天

9
发表于 2025-3-9 15:23:12 | 只看该作者   云南省昆明市
这个快慢很明显吗?我就有一次 打开软件发现很卡,原来是把日志忘记取消了.也写入了配置.ini.好家伙在客户机器上,运行了几个月,慢点一逼,后来一看配置文件300多M了.
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 9 天

8
发表于 2025-3-9 15:12:35 | 只看该作者   辽宁省丹东市
频繁读的话,程序一启动就加载到内存里,用的时候直接内存读。频繁修改场景的话,那你就直接操作文件号那样 或者说用个高性能的数据库
回复 支持 反对

使用道具 举报

签到天数: 6 天

7
发表于 2025-3-9 14:52:53 | 只看该作者   浙江省金华市
配置文件读写?是指ini?还是说自定义的配置?

如果说是 要塞入字节数组这种东西的化 建议是自已定义个格式  每次读入字节集映射比较好。

比如定义一个结构  长度0+字节集0+长度1+字节集1.

这样每次直接顺序读一遍 就已经可以序列化好了。

点评

自定义配置,ini配置只能文本,不能换行.文件体积不能大,等等.用起来就让人想放弃!^_^   广东省惠州市  发表于 2025-3-9 15:00
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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