精易论坛

标题: 执行效率太慢,哪位老哥帮忙转下汇编或优化下 [打印本页]

作者: 宿烟    时间: 前天 14:08
标题: 执行效率太慢,哪位老哥帮忙转下汇编或优化下
双嵌套循环,按照两个都是500+的数量
执行完大概16毫秒,请大佬帮忙看下代码怎么优化,或者帮忙转成汇编

代码备份.e

6.16 KB, 下载次数: 20

问题代码


作者: 梦幻1096    时间: 前天 14:08
16ms 这还慢吗
作者: 一粒红尘    时间: 前天 16:21
图像宽度 × (y - 1)) × 4  这些在 循环外计算     循环内调用计算好的 应该能快一些
作者: 850536360    时间: 前天 16:54
直接用memcpy()整行复制就快了

批注 2024-11-21 165129.png



作者: 宿烟    时间: 前天 17:08
850536360 发表于 2024-11-21 16:54
直接用memcpy()整行复制就快了

可以把代码发我一下吗?
作者: 850536360    时间: 前天 17:22
宿烟 发表于 2024-11-21 17:08
可以把代码发我一下吗?

代码并不复杂,你只需要把之前的循环改成每次复制一整行数据就行了
作者: 宿烟    时间: 前天 17:29
850536360 发表于 2024-11-21 17:22
代码并不复杂,你只需要把之前的循环改成每次复制一整行数据就行了

麻烦发一下,让参考参考吧
作者: 梦幻1096    时间: 前天 17:39
是不是就是点阵上下翻转一下
作者: 宿烟    时间: 前天 17:41
梦幻1096 发表于 2024-11-21 17:39
是不是就是点阵上下翻转一下

这代码是论坛里别人写的,具体实现逻辑我也不太明白,就是用起来效率太低了
作者: 梦幻1096    时间: 前天 18:19
宿烟 发表于 2024-11-21 17:41
这代码是论坛里别人写的,具体实现逻辑我也不太明白,就是用起来效率太低了 ...
  
子程序名返回值类型公开备 注
raw转bmp_ASM字节集 
参数名类 型参考可空数组备 注
地址整数型
长度整数型
宽度整数型
高度整数型
变量名类 型静态数组备 注
转换数据字节集 
转换数据 = 取空白字节集 (长度 + 54)
置入代码 ({ 133, 192, 116, 93, 139, 72, 4, 102, 199, 64, 8, 66, 77, 137, 72, 10, 199, 64, 18, 54, 0, 0, 0, 199, 64, 22, 40, 0, 0, 0, 139, 93, 16, 137, 88, 26, 139, 93, 20, 137, 88, 30, 102, 199, 64, 34, 1, 0, 102, 199, 64, 36, 32, 0, 131, 233, 54, 137, 72, 42, 141, 120, 62, 139, 117, 8, 139, 93, 16, 193, 227, 2, 137, 218, 139, 77, 20, 73, 15, 175, 217, 1, 222, 137, 203, 67, 137, 209, 243, 164, 41, 214, 41, 214, 75, 117, 245, 201, 194, 16, 0 })
返回 ({  })


我没测试,你自己试试


补充内容 (2024-11-21 18:20):
现写的
作者: 宿烟    时间: 前天 18:42
梦幻1096 发表于 2024-11-21 18:19
[e=1].版本 2

.子程序 raw转bmp_ASM, 字节集

太感谢了,代码正常运行,就是调用的多了,偶尔还是会出现几个15毫秒 16毫秒的,老哥能麻烦你再看下是怎么回事吗?
* 0.000000
* 0.000000
* 15.000000
* 0.000000
* 0.000000
作者: 宿烟    时间: 前天 18:44
梦幻1096 发表于 2024-11-21 18:19
[e=1].版本 2

.子程序 raw转bmp_ASM, 字节集

楼上大哥说的那个方法你了解吗?我还在百du学习,请问那种内存拷贝方法,可以用汇编来实现吗?
作者: 梦幻1096    时间: 前天 18:56
宿烟 发表于 2024-11-21 18:44
楼上大哥说的那个方法你了解吗?我还在百du学习,请问那种内存拷贝方法,可以用汇编来实现吗? ...

你用的啥方法测速的,如果是用的自带的取启动时间(),那个本来就不是很准的,他除了0毫秒,起步都是15或16毫秒,一次性数据测试大一点多一点试试




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