精易论坛

标题: 关于易语言结构体数组赋值超级慢 [打印本页]

作者: 火乄神    时间: 2025-1-21 05:36
标题: 关于易语言结构体数组赋值超级慢
  
.版本 2<BR><BR>.数据类型 测试结构体, , 用来测试的结构体,里面存放的是一个数组<BR>    .成员 数组, Vector3Data, , "1"<BR><BR>.数据类型 Vector3Data, , 这个结构体里面也存放了两个数组<BR>    .成员 A, Vector3, , "1"<BR>    .成员 B, Vector3, , "1"<BR><BR>.数据类型 Vector3<BR>    .成员 x, 小数型<BR>    .成员 y, 小数型<BR>    .成员 z, 小数型<BR><BR><BR>.版本 2<BR>.支持库 spec<BR><BR>.程序集 程序集1<BR>.程序集变量 结构体A, 测试结构体<BR><BR>.子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码<BR><BR><BR>_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码<BR>返回 (0)  ' 返回值被忽略。<BR><BR>.子程序 _临时子程序<BR>.局部变量 结构体B, 测试结构体<BR>.局部变量 开始时间, 整数型<BR>.局部变量 i, 整数型<BR><BR>重定义数组 (结构体A.数组, 假, 2000)  ' 初始化结构体A中的数组大小<BR>.计次循环首 (2000, i)<BR>    重定义数组 (结构体A.数组 [i].A, 假, 1000)  ' 把结构体A里面数组的结构体存放的数组初始化大小<BR>    重定义数组 (结构体A.数组 [i].B, 假, 1000)<BR>.计次循环尾 ()<BR><BR>开始时间 = 取启动时间 ()<BR>结构体B = 结构体A<BR>调试输出 (“结构体赋值耗时:”, 取启动时间 () - 开始时间)<BR>







如果结构体里面有一个结构体数组,然后结构体里面又有另一个数组的情况下,赋值会非常的慢,不知道可有解决办法





补充内容 (2025-1-21 05:40):
代码发错了,看这个帖子 关于易语言结构体数组赋值超级慢的问题
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14846651
(出处: 精易论坛)

作者: chenyucheng    时间: 2025-1-21 13:07
看得HTML都想<BR>了
作者: chenboss    时间: 2025-1-21 17:59
易语言数组的效率比较低的,数量越多越慢,加上类型嵌套更慢了,优化方法用字节集代替数组和嵌套,重定义数组改成申请内存,使结构体成为一个连续的内存地址,读写用指针偏移,互相赋值用 RtlMoveMemory 拷贝内存
作者: 编程阿狸    时间: 2025-1-28 01:03

易语言数组的效率比较低的,数量越多越慢,加上类型嵌套更慢了,优化方法用字节集代替数组和嵌套,重定义数组改成申请内存,使结构体成为一个连续的内存地址,读写用指针偏移,互相赋值用 RtlMoveMemory 拷贝内存





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4