向后兼容
这是使行为保持在现有的语言/库/ ISA / etc中的第一原因。
考虑一下如果他们从Java中删除浮标会发生什么。Libgdx(以及成千上万的其他库和程序)无法正常工作。要更新所有内容,将需要大量的精力,对于许多项目而言,可能要花费数年的时间(只需看看向后兼容性突破的Python 2向Python 3的过渡)。并不是所有的东西都会被更新,某些东西会永远被破坏,因为维护者放弃了它们,也许比他们早了,因为它花费了比他们想要更新更多的精力,或者因为不再可能完成他们的软件应该做的事情去做。
性能
64位双精度占用的内存是32倍浮点运算的两倍,并且处理速度通常总是比32位浮点运算慢(非常罕见的例外是,预期很少使用或根本不使用32位浮点运算的能力,因此没有进行任何优化的努力。除非您正在开发专用硬件,否则在不久的将来您将不会遇到这种情况。)
与您特别相关的Libgdx是一个游戏库。与大多数软件相比,游戏倾向于对性能更加敏感。游戏显卡(例如AMD Radeon和NVIDIA Geforce,而不是FirePro或Quadro)往往具有非常弱的64位浮点性能。由Anandtech提供,以下是在AMD和NVIDIA的一些顶级游戏卡上,双精度性能与单精度性能的比较(截至2016年初)
AMD
Card R9 Fury X R9 Fury R9 290X R9 290
FP64 1/16 1/16 1/8 1/8
NVIDIA
Card GTX Titan X GTX 980 Ti GTX 980 GTX 780 Ti
FP64 1/32 1/32 1/32 1/24
请注意,R9 Fury和GTX 900系列比R9 200和GTX 700系列更新,因此64位浮点的相对性能正在下降。回到足够远的地方,您会发现GTX 580与R9 200系列具有1/8的比率。
如果您有严格的时间限制,而使用较大的倍数并不能带来太大收益,则需要付出1/32的性能代价。