在Java中使用静态方法实现可伸缩性

时间:2018-03-06 07:30:03

标签: java

在使用Google App Engine开发基于Java的后端时,我想到,由于我最终按创建的实例数量付费,因此以最小化内存使用量的方式设计代码显然是有意义的。 。这让我想知道尽可能使用静态方法是否有意义,原因是静态方法只在内存中创建一次。当然,这些方法必须是不可变的,因此不允许使用私有静态字段。

我的假设是,调用静态方法100万次在内存使用方面更有效,创建了拥有该方法的类的100万个实例。

这种推理是否有意义,或者我是否可能忽略了静态方法的使用?

2 个答案:

答案 0 :(得分:2)

实例方法也只创建一次。你在这里没有聪明的优化,基本上你决定是否通过使一切都静止来做坏设计。这里没有节省的资金。

你似乎不太明白内部是如何工作的,所以最好不要过于担心它。您还在比较调用静态方法100万次与创建100万次实例。那是苹果和橘子,因为它们根本不做同样的事情。如果您有100万个数据对象,并且您使用其中一个作为参数调用静态方法,则进行等效比较。

方法不是您需要关注的,而是您正在使用的使用内存的数据。

答案 1 :(得分:0)

这里出错的地方是"实例数量"与"数据量"不同。我们假设你抓取并处理维基百科。重要的是在任何给定时间内存在多少数据,而不是如何跨实例分布。显然,做错事总是有可能的,但静态方法不会让你失去理智; - )