开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

楼主: 火威网络
收起左侧

[2022开源大赛(第七届)] 结构组 比易语言数据类型调用更加高效、灵活、便捷

    [复制链接]
结帖率:77% (53/69)
发表于 2023-1-5 09:28:34 | 显示全部楼层   湖北省武汉市
老板继续优化,速度还能提高一倍
回复 支持 反对

使用道具 举报

结帖率:77% (53/69)

签到天数: 19 天

发表于 2023-1-5 09:27:18 | 显示全部楼层   湖北省武汉市
老板继续优化,速度还能提高一倍
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)

签到天数: 8 天

 楼主| 发表于 2023-1-3 16:26:10 | 显示全部楼层   湖南省怀化市

结构组:
1、新增 日期时间型、长整数型、双精度浮点型排序
2、优化 赋值与取值时通过汇编取成员地址提升效率
3、优化 取值时文本型与字节集型直接在原指针重定义内存尺寸。
4、修复 之前短整数排序降序与升序写反了。

本次更新之后,与上个版本的结构组,大大提升了差不多一倍的时间。

结构组.e

128.09 KB, 下载次数: 453, 下载积分: 精币 -2 枚

结构组模块

点评

yyds   广东省广州市  发表于 2023-2-8 19:01
回复 支持 反对

使用道具 举报

结帖率:65% (36/55)

签到天数: 16 天

发表于 2023-1-2 15:10:45 | 显示全部楼层   河北省石家庄市
火威网络 发表于 2023-1-2 14:38
感谢参与讨论。
1、插入n个成员,就是在原来地址扩展结构组(n * 所有成员所占用的长度)然后对原数据移动 ...

插入,只要不是新申请内存,把整个的分为两次复制过去的,本质上就存在了 重叠复制了,确实效率挺低的。。。差距很大。当然了,并不是说分两次就是对的。。。只是说一下 内存复制涉及到重叠的时候。确实是个事。

重新分配内存。肯定是比直接申请速度要快。这种情况具体体现在。 原本长度 如果是10 你来了一个12.这样的 刚好能在这个内存块上。不需要寻找其他合适大小内存块的时候。

我指的重复申请。是指的整体。统计下来。。。比我那个。 要多出好几倍内存申请。一直以来就对易语言的默认数据结构 的内存申请次数挺诟病的。。。所以比较在意这个数量。
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)

签到天数: 8 天

 楼主| 发表于 2023-1-2 14:38:12 | 显示全部楼层   湖南省怀化市
糖心疼 发表于 2023-1-2 08:05
很少点评,只因为我也有这样的功能,客观的说几点问题吧。

1、插入,重叠复制内存,效率太低。这 ...

感谢参与讨论。
1、插入n个成员,就是在原来地址扩展结构组(n * 所有成员所占用的长度)然后对原数据移动空出新数据空间,便于填充数据
2、结构组变量,成员下标用常量表示方便调用。毕竟是自己构造的不是支持库。所以不能直接想易语言那样声明参数。
3、修改原成员数据只会在 文本和字节集才会才需要申请内存,数值型不需要。不会出现重复申请;不过没有测试过在原指针重置内存大小,但感觉速度一样就没有进行测试。
回复 支持 反对

使用道具 举报

发表于 2023-1-2 11:31:15 | 显示全部楼层   江苏省连云港市
分享源码] 结构组 比易语言数据类型调用更加高效、灵活、便捷
回复 支持 反对

使用道具 举报

结帖率:65% (36/55)

签到天数: 16 天

发表于 2023-1-2 08:05:25 | 显示全部楼层   河北省石家庄市
本帖最后由 糖心疼 于 2023-1-2 08:07 编辑

很少点评,只因为我也有这样的功能,客观的说几点问题吧。

1、插入,重叠复制内存,效率太低。这个可以去研究下 内存的重叠复制。(当然,结构插入的需求 应该没有这么高。)
2、结构变量的加入 不太方便。 只能用变量。无法直接写变量内容。
3、内存设计上还需要优化,不必要的内存申请过多。易语言代码想速度提升。应减少内存的申请次数。这个可以研究下。支持库开发传递参数的方法。 没必要申请两次内存。一个存储数据,一个存储长度。

整体效率,方便性,和我那个。差距不是很小。
回复 支持 反对

使用道具 举报

发表于 2022-12-30 13:48:06 | 显示全部楼层   浙江省台州市
给你投票
回复 支持 反对

使用道具 举报

结帖率:97% (98/101)

签到天数: 21 天

发表于 2022-12-30 00:11:13 | 显示全部楼层   重庆市重庆市
1000000条数据,编译后
火威网络 总数 [1000000] 创建: >耗时:0
火威网络 总数 [1000000] 赋值: >耗时:796
火威网络 总数 [1000000] 取值: >耗时:829
火威网络 总数 [1000000] 销毁: >耗时:0
易支持库 总数 [1000000] 创建: >耗时:93
易支持库 总数 [1000000] 赋值: >耗时:172
易支持库 总数 [1000000] 取值: >耗时:219
易支持库 总数 [1000000] 销毁: >耗时:109
火威网络 总数 [1000000] 创建: >耗时:0
火威网络 总数 [1000000] 赋值: >耗时:797
火威网络 总数 [1000000] 取值: >耗时:844
火威网络 总数 [1000000] 销毁: >耗时:16
易支持库 总数 [1000000] 创建: >耗时:93
易支持库 总数 [1000000] 赋值: >耗时:172
易支持库 总数 [1000000] 取值: >耗时:219
易支持库 总数 [1000000] 销毁: >耗时:109
火威网络 总数 [1000000] 创建: >耗时:0
火威网络 总数 [1000000] 赋值: >耗时:828
火威网络 总数 [1000000] 取值: >耗时:844
火威网络 总数 [1000000] 销毁: >耗时:0
易支持库 总数 [1000000] 创建: >耗时:78
易支持库 总数 [1000000] 赋值: >耗时:172
易支持库 总数 [1000000] 取值: >耗时:203
易支持库 总数 [1000000] 销毁: >耗时:125
火威网络 总数 [1000000] 创建: >耗时:0
火威网络 总数 [1000000] 赋值: >耗时:797
火威网络 总数 [1000000] 取值: >耗时:843
火威网络 总数 [1000000] 销毁: >耗时:16
易支持库 总数 [1000000] 创建: >耗时:94
易支持库 总数 [1000000] 赋值: >耗时:172
易支持库 总数 [1000000] 取值: >耗时:203
易支持库 总数 [1000000] 销毁: >耗时:110
不知道为啥我结果不如意  win10  苹果渣渣一体机
回复 支持 1 反对 0

使用道具 举报

发表于 2022-12-28 09:38:30 | 显示全部楼层   辽宁省大连市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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