我已经阅读了很多关于java中内存使用情况的内容。
我的问题指向游戏制作。 在我创建二叉树时,每个帧我都会调用方法达500次。 每个节点都将调用一个函数,并将创建10个局部变量。
如果我的第一个问题实际上更好,那么从一个单独的对象调用.getSomething()比存储你想要在自己的对象中得到的东西更“昂贵”吗?
谢谢大家!
答案 0 :(得分:0)
正如您的问题的评论中所提到的,本地原语变量将在堆栈上分配,不受垃圾回收的影响。在某些情况下,由于JIT编译器的转义分析技术,甚至可以在堆栈上分配对象。
一般来说,如果您真的想了解应用程序在GC和分配方面的行为方式,您应该对其进行分析(例如使用Java Flight Recorder&#39的分配配置文件)并查看GC日志。 此外,您应该根据这些结果而不是过早地调整应用程序。