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)
为什么?
你总是可以自己测试它,看看......但是,是的,它稍微更有效率。或者这是我最后一次测试它。原因是编译器组合了语句,生成的 r 代码要小一些。
但是效率几乎总是一个糟糕的理由。在这里和那里节省一微秒与避免磁盘 IO 或选择更有效的算法相比显得苍白无力。好的理由:
回到黑暗时代,每个程序的 r 代码限制为 63k。将语句与 ASSIGN 结合是一种减少 r 代码大小并保持在该限制以下的方法(好吧,这可能不是一个“好”的理由)。这有帮助的另一种方式是,您还可以经常避免使用 DO ... END 对并进一步减少 r 代码大小。
创建或更新记录时,作为索引一部分的字段将在分配时(而不是在事务结束时)写回数据库——将所有分配分组到单个语句中有助于避免不一致的脏读。将索引字段分组为单个 ASSIGN 可避免多次写入索引条目。(这可能是使用 ASSIGN 的最佳理由。)
可读性——你可以争辩说,将连续的作业分组更清楚地表明你的意图,因此更具可读性。(我喜欢这个理由,但不是每个人都同意。)