评论者:alexmiller
我认为只有原始的longs或doubles应该得到支持,并在loop/recur中使用。假设这是正确的,这将是一种预期行为。
在最后一大轮数值/原始重构中,我们决定只支持原始longs和doubles。其结果是,原始int循环难以优化——我最常遇到这种情况是在与Java互操作相关的紧密循环中,例如进行字符串、集合或数组操作(所有这些都是int索引)。
关于un-checked-inc和un-checked-inc-int,拥有这两种变体的主要原因不是性能,而是行为。特别是,散列操作通常期望得到32位int溢出语义,而不是64位int溢出语义。
总之,我认为在给出的示例中,我不会用int或unchecked-inc-int,而会使用long和unchecked-inc来编写它,如果您正在寻找最佳性能。