我正在设计一个函数(Java方法),它将在移动设备上每秒执行40-80次。
我想避免产生大量的死变量,这些变量由GC收集,因为函数运行(可能在应用程序的整个生命周期中)。
例如,在C语言中,我可能使用volatile来防止每次执行函数时对我的变量进行内存分配.我想在Java中做一些类似的事情,但不知道怎么做。
函数将数据存储在
通常,在Java中,使用上述变量的首选方法是什么,而不是每次执行函数时都重新分配它们(每秒40+次数)?
成员变量可以“工作”,但这是最好的解决方案吗?
谢谢!布拉德
发布于 2010-10-12 15:28:58
发布于 2010-10-12 15:37:17
静态成员vars,它们在类卸载之前不会被卸载。请记住,如果对类的所有引用都丢失了,则可能会对类进行GC‘’ed。我怀疑这将是一个问题,但这是值得注意的。此外,如果要创建包含静态成员vars的类的新实例,则从分配姿态来看,您将处于同一条船上。
发布于 2010-10-12 15:33:58
我完全同意这个答案。
每次对函数的调用都会分配更多的内存,如果您动态地创建变量,因为Java的GC没有完全清除,直到类被释放时调用了memory。
但是,如果要多次调用该函数,那么只需使它们成为类的成员变量就可以了。
https://stackoverflow.com/questions/3916233
复制相似问题