评论由:alexmiller 发布
我认为在loop/recur中支持的不应该是int或float,而应该是long和double。
最后一次重大numeric/primitive重构决定仅支持原始long和double。这的一个后果是,原始int循环难以优化 - 我主要在与Java互操作性工作,经常在(例如)String、集合或数组操作等紧密循环中遇到这种情况(所有这些都是int索引)。
关于unchecked-inc vs unchecked-inc-int,有两个版本的主要原因不是性能,而是行为。特别是,哈希操作通常期望以32位int溢出语义而不是64位int溢出语义获得。
总之,我认为在所给示例中,我将以long和unchecked-inc而不是int或unchecked-inc-int来编写代码,如果您正在寻找最佳性能。