关于代码的常数
  • 板块灌水区
  • 楼主ccccccyd
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/11/9 14:25
  • 上次更新2024/11/9 16:30:31
查看原帖
关于代码的常数
428993
ccccccyd楼主2024/11/9 14:25

这两天被卡常好几次

所以求助一些一直搞不懂的代码内部实现细节

或者求优化常数博客/kel

希望知道以下常数问题的原理/优化措施/优化是否必要(对速度提升大不大)

  1. 结构体拆成多个单独变量优化大吗

  2. 调用函数的常数

    • 假如我要计算 c=(a>b?a:b) ,但是 a 或 b 中有常数较大的计算(比如乘法),那么我该调用函数(乘法只计算一次、但是调用函数)还是摊开函数(乘法计算两次)
  3. 变量类型的常数

  4. 变量类型转换的常数

    • 和上一个问题结合,比如我要计算 a*b%mod,我是把它们统一定义成 long long 好,还是计算的时候前面乘 1ll,还是计算的时候前面加 (long long)表示转化类型
  5. vector

    • vector 的访问好像是很快的,所以如果主要复杂度是遍历,插入次数较少是不是可以当优化用
    • vector clear() 的常数大吗,怎么优化
  6. 调用 lambda 表达式的常数大不大

  7. inline register 等在 O2 环境下优化意义大吗

  8. 优化数组访问顺序

    • 有代码 f[i][j]+=v*f[i][k] ,此时对 f 的访问中混入了 v ,那么使内存访问尽量连续的优化还有用吗。如果有用具体是怎么实现的
  9. 给数据结构开的内存太大会不会影响时间

  10. 还有其他重要的优化常数手段吗(知道重写std的函数、加减法取模用三目运算符转化成加减运算)

蒟蒻不太懂,所以问的有些问题可能很弱智

总之先拜谢了

2024/11/9 14:25
加载中...