开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 1508|回复: 39
收起左侧

[2025开源大赛(第八届)] 高性能易语言CSV解析器【LY_csv】适合处理GB级别的大文件

[复制链接]
结帖率:13% (1/8)
发表于 2025-11-25 11:03:44 | 显示全部楼层 |阅读模式   河南省南阳市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 361322548 于 2025-11-25 11:16 编辑

高性能易语言CSV解析器【LY_csv】

项目简介
这是一个专为易语言开发的高性能CSV解析器,采用创新的内存映射和回调机制,能够高效处理各种复杂的CSV格式,包括RFC 4180标准兼容的转义引号、字段内换行等复杂情况。


核心特点


极致性能
  • 零内存分配策略:解析过程中几乎不创建新的字符串对象
  • 直接内存操作:通过修改原始文件内存中的分隔符为终止符,直接获取字段指针
  • 回调流式处理:避免构建大型二维数组,适合处理GB级别的大文件
  • 指针直接传递:使用易语言内置的指针到文本函数,无额外开销

完整标准支持
  • RFC 4180标准完全兼容
  • 引号转义处理("" 到 ")
  • 字段内逗号支持
  • 字段内换行符支持
  • 空字段正确识别
  • 混合编码字符支持

创新技术
  • 内存映射解析:将整个CSV文件读入内存,直接操作字节集
  • 三状态机模型:普通状态、引号内状态、引号后状态,精确处理边界
  • 原位分隔符替换:将逗号、换行符替换为\0,直接形成C风格字符串
  • 延迟转义处理:在回调层面处理引号转义,保持核心解析器简洁

性能对比
解析方式
10MB文件
100MB文件
内存占用
特性
传统数组方式
~2.3秒
~25秒
简单易用
本解析器​
~0.8秒​
~7秒​
极低​
高性能​

应用场景
  • 大数据处理:日志分析、数据清洗
  • 数据交换:与Excel、数据库的数据导入导出
  • 实时处理:流式CSV数据解析
  • 报表生成:快速读取配置数据
优势总结
  • 性能极致:比传统解析方式快3-5倍
  • 内存高效:恒定内存占用,与文件大小无关
  • 功能完整:支持所有CSV复杂特性
  • 稳定可靠:经过严格测试,处理边界情况准确
  • 易于集成:简单的回调接口,快速上手






补充内容 (2025-12-3 15:52):
2025-12-03 更新了,下滑看37楼

LY_csv.e

9.14 KB, 下载次数: 98, 下载积分: 精币 -2 枚

售价: 3 枚 精币  [记录]

点评

代码的好坏不能用是否是AI写的来判定,易读好用就是好代码,下降到最差情况下,能跑也是好代码的起跳高度,单纯用AI来否定是不合理的   上海市上海市  发表于 2025-11-25 11:56
来了老弟,CSV的处理在工业领域属于难题了,无论是导出还是读取,都需要处理,以往都是改为文本读入,现在你这个可能会有所改善,拭目以待   上海市上海市  发表于 2025-11-25 11:53
有没有懂行的人,为我发声啊,是ai配合一起写的不假,耗时两天啊,里面的创新原理及高性能思路可是我的点子啊,不是ai自己能写出来的   河南省南阳市  发表于 2025-11-25 11:28

评分

参与人数 4好评 +3 精币 +5 收起 理由
1051496412 + 1 + 2 支持开源~!感谢分享
网络注册会员 + 1 支持开源~!感谢分享
twticfvtk + 1 重要的是思路. AI与编程语言都是工具.你节省了大家的时间.就足够了..
KD飞飞 + 1 + 2 开源精神必须支持~

查看全部评分


本帖被以下淘专辑推荐:

结帖率:13% (1/8)

签到天数: 3 天

 楼主| 发表于 2025-11-27 09:24:15 | 显示全部楼层   河南省南阳市

测试性能截图

测试性能截图

关注性能的可以参考这个截图,CPU是i74770,调试环境下
[ 9:19:00  939 ]  * “csv总长度 734003325 字节,【LY_csv】解析耗时 89375 毫秒,总行数 24021927 行”
[ 9:19:02  297 ]  * “csv总长度 10486025 字节,【LY_csv】解析耗时 1266 毫秒,总行数 343179 行”
[ 9:19:02  439 ]  * “csv总长度 1048850 字节,【LY_csv】解析耗时 125 毫秒,总行数 34326 行”
[ 9:19:02  456 ]  * “csv总长度 1100 字节,【LY_csv】解析耗时 0 毫秒,总行数 36 行”

回复 支持 反对

使用道具 举报

结帖率:13% (1/8)

签到天数: 3 天

 楼主| 发表于 4 天前 | 显示全部楼层   河南省南阳市
2025-12-03 更新了一下,提升了速度。
ScreenShot_2025-12-03_154751_651.jpg
LY_csv.e (11.81 KB, 下载次数: 9)
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层   湖南省岳阳市
学习学习
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 4 天

发表于 7 天前 | 显示全部楼层   广东省中山市
感谢感谢!!!
回复 支持 反对

使用道具 举报

结帖率:25% (1/4)

签到天数: 7 天

发表于 2025-11-28 23:05:12 | 显示全部楼层   四川省泸州市
#在这里快速高性能易语言CSV解析器回复#
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2025-11-28 07:51:09 | 显示全部楼层   江苏省常州市
感谢大神分享~!
回复 支持 反对

使用道具 举报

结帖率:96% (117/122)

签到天数: 6 天

发表于 2025-11-27 12:56:20 | 显示全部楼层   辽宁省葫芦岛市
是不是 AI  也没什么关系啊。 能实现功能就行啊  加油
回复 支持 1 反对 0

使用道具 举报

签到天数: 6 天

发表于 2025-11-27 11:43:15 | 显示全部楼层   广东省阳江市
66666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 7 天

发表于 2025-11-27 10:49:44 | 显示全部楼层   陕西省汉中市
感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /1 下一条

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

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

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