进度中的赋值语句的效率是多少-4gl

Bil*_*ill 4 progress-4gl openedge

为什么赋值语句比不使用赋值语句更有效?

同事说:

assign
  a=3
  v=7
  w=8.
Run Code Online (Sandbox Code Playgroud)

比以下更有效:

a=3.
v=7.
w=8.
Run Code Online (Sandbox Code Playgroud)

为什么?

Tom*_*com 7

你总是可以自己测试它,看看......但是,是的,它稍微更有效率。或者这是我最后一次测试它。原因是编译器组合了语句,生成的 r 代码要小一些。

但是效率几乎总是一个糟糕的理由。在这里和那里节省一微秒与避免磁盘 IO 或选择更有效的算法相比显得苍白无力。好的理由:

  1. 回到黑暗时代,每个程序的 r 代码限制为 63k。将语句与 ASSIGN 结合是一种减少 r 代码大小并保持在该限制以下的方法(好吧,这可能不是一个“好”的理由)。这有帮助的另一种方式是,您还可以经常避免使用 DO ... END 对并进一步减少 r 代码大小。

  2. 创建或更新记录时,作为索引一部分的字段将在分配时(而不是在事务结束时)写回数据库——将所有分配分组到单个语句中有助于避免不一致的脏读。将索引字段分组为单个 ASSIGN 可避免多次写入索引条目。(这可能是使用 ASSIGN 的最佳理由。)

  3. 可读性——你可以争辩说,将连续的作业分组更清楚地表明你的意图,因此更具可读性。(我喜欢这个理由,但不是每个人都同意。)