精易论坛

标题: 能减少多少运行时间 [打印本页]

作者: woyao2991314    时间: 2025-4-8 18:06
标题: 能减少多少运行时间
现运行时长
win7系统 E3 1275 30 秒一轮
win7系统 i7 7700k 25秒一轮


测试运行时间.e

991.64 KB, 下载次数: 25


作者: qawsedzz002    时间: 2025-4-8 18:09
啥意思?没看懂
作者: woyao2991314    时间: 2025-4-8 18:13
qawsedzz002 发表于 2025-4-8 18:09
啥意思?没看懂

减少代码运行时间,提高效率
作者: 算法艺术家    时间: 2025-4-8 18:14
125.confly.eu.org/forum.php?mod=viewthread&tid=14829819&highlight  用这个能快不少
作者: 笨来无一悟    时间: 2025-4-8 18:34
随便瞄了一眼 保守估计 可以提速20倍以上
作者: woyao2991314    时间: 2025-4-8 19:25
笨来无一悟 发表于 2025-4-8 18:34
随便瞄了一眼 保守估计 可以提速20倍以上

帮整下!你说多少币
作者: samll88    时间: 2025-4-8 19:41
我优化了一下,你看看是不是这个意思
随机数.e (15.59 KB, 下载次数: 3)


作者: woyao2991314    时间: 2025-4-8 20:15
woyao2991314 发表于 2025-4-8 19:25
帮整下!你说多少币

数组 成员变换的,分割内容来自,常量里的数据 运行一次换一次不同的组合,不固定取几个成员 5个或6个,数组指定固定只有5个,如果6个成员,就这么判断了一下取1组的成员,这的确可以优化一下,常量里直接加进去第6位加个1
作者: woyao2991314    时间: 2025-4-8 20:21
samll88 发表于 2025-4-8 19:41
我优化了一下,你看看是不是这个意思

啥东东完全不一样!!!
作者: maryma    时间: 2025-4-8 20:22
优化说明:
通过这些优化,可以减少不必要的计算和内存分配,电脑和你不一样,不知是否减少了运行时间?
  
子程序名返回值类型公开备 注
开始2  
变量名类 型静态数组备 注
输入组件文本型9
分割后数组文本型9
整数数组整数型9
数组文本型0
成员文本型0
运行时间整数型 
循环常量整数型 
循环次数整数型 
数据总和整数型 
i整数型 
第几位整数型 
对数组号整数型 
对成员号整数型 
' 初始化输入组件内容
输入组件 [1] = q1.内容
输入组件 [2] = q2.内容
输入组件 [3] = q3.内容
输入组件 [4] = q4.内容
输入组件 [5] = q5.内容
输入组件 [6] = q6.内容
输入组件 [7] = q7.内容
输入组件 [8] = q8.内容
输入组件 [9] = q9.内容
' 分割文本并转换为整数数组
分割文本并转换 (输入组件, 分割后数组, 整数数组)
计次循环首 (2, 循环常量)
运行时间 = 取启动时间 ()
文本_逐字分割 (指定数组 (), 数组)
循环次数 = 0
判断循环首 (循环次数 < 67277)
循环次数 = 循环次数 + 1
文本_逐字分割 (指定成员 (), 成员)
数据总和 = 0
计次循环首 (200, i)
计次循环首 (取数组成员数 (成员), 第几位)
对数组号 = 获取数组号 (数组, 第几位)
对成员号 = 到整数 (成员 [第几位]) + i - 1
数据总和 = 数据总和 + 获取和数 (整数数组, 对成员号)
计次循环尾 ()
计次循环尾 ()
判断循环尾 ()
编辑框1.加入文本 (到文本 (循环常量)“轮:”到文本 (取启动时间 () - 运行时间)#换行符 )
计次循环尾 ()
子程序名返回值类型公开备 注
分割文本并转换  
参数名类 型参考可空数组备 注
输入组件文本型
分割后数组文本型
整数数组整数型
变量名类 型静态数组备 注
i整数型 
j整数型 
成员数整数型 
计次循环首 (9, i)
分割后数组 = 分割文本 (输入组件 [i], #换行符, )
成员数 = 取数组成员数 (分割后数组)
重定义数组 (整数数组, 真, 成员数)
计次循环首 (成员数, j)
整数数组 [j]到整数 (分割后数组 [j])
计次循环尾 ()
计次循环尾 ()
子程序名返回值类型公开备 注
获取数组号整数型 
参数名类 型参考可空数组备 注
数组文本型
第几位整数型
如果 (第几位 = 6)
返回 (1)
返回 (到整数 (数组 [第几位]))

子程序名返回值类型公开备 注
获取和数整数型 
参数名类 型参考可空数组备 注
目标数组整数型
成员号整数型
如果 (成员号 > 0 成员号 ≤ 取数组成员数 (目标数组))
返回 (目标数组 [成员号])
返回 (0)



作者: 笨来无一悟    时间: 2025-4-8 20:27
这离优化到极致早得很 要继续优化得纯汇编了 7万次简单的加法计算 1秒应该不是问题 主要不清楚规则 要是知道你的具体目的 重新设计一套算法也行更快 属实看不懂你在干嘛 所以哪怕有更快速简便的实现方式也没用

测试运行时间.e

1.11 MB, 下载次数: 9


作者: woyao2991314    时间: 2025-4-8 20:39
woyao2991314 发表于 2025-4-8 20:15
数组 成员变换的,分割内容来自,常量里的数据 运行一次换一次不同的组合,不固定取几个成员 5个或6个, ...

增加代码的地方在求和的位置,参加一些判断,不影响其它流程
作者: 汉族    时间: 2025-4-8 20:57
我这里模拟循环 你原本的需要50多秒,我改后
  
子程序名返回值类型公开备 注
指定成员文本型 
变量名类 型静态数组备 注
arr文本型0
index整数型 
result文本型 
k逻辑型 
如果真 (取反 (k))
k = 真
arr = 分割文本 ( #p数据, #换行符, )
如果真 (取数组成员数 (arr) = 0)
返回 (“”)
如果真 (index = 0)
index = 1
result = arr [index]
index = index + 1
如果真 (index > 取数组成员数 (arr))
index = 1
返回 (result)

  
q = 取启动时间 ()
计次循环首 (67277, )
' 指定成员 ()
文本_逐字分割 (指定数组 (), 成员)
计次循环尾 ()
调试输出 (取启动时间 () - q)‘模拟更改后 600多毫秒,你的原本50多秒


i支持库列表   支持库注释   
spec特殊功能支持库

作者: 汉族    时间: 2025-4-8 21:01
能进一步缩短几十毫秒
  
子程序名返回值类型公开备 注
指定数组文本型 
变量名类 型静态数组备 注
arr文本型0
index整数型 
result文本型 
k逻辑型 
如果真 (取反 (k))
k = 真
arr = 分割文本 ( #数据, #换行符, )
如果真 (取数组成员数 (arr) = 0)
返回 (“”)

如果真 (index = 0)
index = 1
result = arr [index]
index = index + 1
如果真 (index > 取数组成员数 (arr))
index = 1
返回 (result)

作者: woyao2991314    时间: 2025-4-8 22:29
汉族 发表于 2025-4-8 21:01
能进一步缩短几十毫秒
[e=1].版本 2

真有这么快吗?
作者: 汉族    时间: 2025-4-8 23:38
woyao2991314 发表于 2025-4-8 22:29
真有这么快吗?

只是一个小分支,我跑过 你的原本 171134,110684 更改后 ,直接少一半,这是我的笔记本电脑跑的 数据,我是i7 7700HQ笔记本电脑,性能没法和你服务器的处理器比。
作者: samll88    时间: 2025-4-9 12:53
运行时间.e (994.96 KB, 下载次数: 3)

昨天没明白你的意思,又改了,跑完一轮大概300毫秒,你看是不是这个意思





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