【问题标题】:Groovy: Groovy Bean creating is longer than java.util.Map creating?Groovy:Groovy Bean 创建比 java.util.Map 创建长?
【发布时间】:2010-08-03 11:39:51
【问题描述】:
class Test {
    String field
    int num

    public Test (String field, int num) {
        this.field = field
        this.num = num
    }
}

def start = System.currentTimeMillis()

def testObj = new Test("i'm field", 1)

println "Beans: ${System.currentTimeMillis() - start}"

def start2 = System.currentTimeMillis()

def map = [:]
map.field = "i'm field"
map.num = 1

println "Maps: ${System.currentTimeMillis() - start2}"

输出是:

Beans: 3
Maps: 0

我的 Grails 服务器通过 JSON 进行通信。我正在使用 map JSON 转换,但我认为使用 bean 会更好,因为在 maps 情况下,您必须调用许多 put() 方法...

但简单的脚本表明 Map 创建和两个 put 操作比简单的对象构造函数要快...

那么我会继续使用地图还是 bean 更可取?

【问题讨论】:

    标签: groovy


    【解决方案1】:

    您的脚本完全没有意义。您尝试测量的操作远远低于您的测量阈值。输出只是随机噪声。将每个分配重复一百万次并使用System.nanoTime(),然后您可能会得到有意义的数据。

    在任何情况下,如果存在显着差异,那么几乎可以肯定它对您的应用程序而言并不重要。这是过早优化的典型例子,即浪费时间。

    【讨论】:

      【解决方案2】:

      你的脚本什么也证明不了。它甚至不做任何 JSON 序列化/反序列化。即使使用 Maps 和 Beans 之间的细微差别对您的应用程序来说很重要,但您还有更大的问题需要担心。

      选择更具可读性/可维护性/优雅的方法,忘记性能差异,因为它们几乎肯定是微不足道的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多