哪个在对象中经常使用更好:Vector2f或2个浮点数

时间:2014-06-30 06:20:55

标签: java object memory vector floating-point

我目前正在为我的GUI元素编写一些代码,并且在处理用于检测鼠标是否在元素内的代码时,我不仅考虑现在而且将来考虑效率。目前我使用Vector2f作为维度和位置,因为通过调用getDimensions等函数可以轻松地将它们传入和传出函数,这些函数只返回Vector2f,依此类推。我的问题是,我是否通常使用Vector和Vector2f来浪费我。在x和y的对象中有两个浮点数,宽度和高度有两个浮点数,或者有两个向量,一个用于位置,一个用于维度。

主要担心的是创建Vector对象比仅使用原始浮点数占用更多空间。我已经查看了Vector2f和3f类的思想来源,它们看起来非常轻,但我知道很少有关于不同对象占用多少内存以及如何确定我会问那些能够更容易理解手头的问题。

提前感谢您提供任何和所有答案!

1 个答案:

答案 0 :(得分:0)

一般答案是:坚持使用对象,因为它们使您的代码可读。

如果您确实需要节省内存,请阅读An overview of memory saving techniques in Java (by Mikhail Vorontsov)。数组占用12个字节加上它们的长度乘以它们的元素大小。包装器占用底层类型的12个字节。

在你的情况下:

  • Vector2f:16个字节
  • float [2]:16个字节
  • 2个浮点数:8个字节