我正在一个项目中,我需要以尽可能少的延迟从用户那里获得最终值。用户输入是一系列带有0-100整数值的滑块(因此我不在乎该范围之外的任何内容)。
原始设置是这样(伪代码,但是项目是用swift 5编写的,可以在macOS上运行)
final = max(a*A, b*B, s1*S1, s2*S2, ... s8*S8)
保证小写s的值不会以速度要求的方式更改(但是用户可以随时更改,因此不能进行硬编码) 如果小写字母a或b更改,那么它将运行一次。 如果大写字母A,B或S发生变化,那么它将运行32次。
最初的反思:
sValue = max (s1*S1 ... s8*S8) //this would only run when one of the S values changes
final = max (a*A, b*B, sValue)
朋友推荐: 制作一个字典(哈希表),将Int数组作为键,并将最终值作为值;然后进行查找。可以在程序启动时构建此字典(可以将其粘贴到加载屏幕的后面)
那么,从性能角度来看,哪个是更好的解决方案:将数组作为键的字典或每次都运行max函数? 还是有人有其他建议?