Groovy: создание Groovy Bean длиннее, чем создание java.util.Map? - PullRequest
0 голосов
/ 03 августа 2010
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-компоненты, потому что в случае карт вы должны вызывать многочисленные методы put () ...

Но простой скрипт показывает, что создание и создание картдве операции над путами выполняются быстрее, чем простой конструктор объекта ...

Так я бы продолжил использовать карты или бины предпочтительнее?

Ответы [ 2 ]

7 голосов
/ 03 августа 2010

Ваш сценарий абсолютно бессмысленный. Операции, которые вы пытаетесь измерить, намного ниже вашего порога измерения. Выход просто случайный шум. Повторите каждое назначение миллион раз и используйте System.nanoTime(), и тогда вы сможете получить значимые данные.

В любом случае, если существует значительная разница, она почти наверняка не имеет значения для вашего приложения. Это типичный пример преждевременной оптимизации, т. Е. Трата времени.

2 голосов
/ 03 августа 2010

Ваш скрипт ничего не доказывает.Он даже не выполняет сериализацию / десериализацию JSON.Даже если микроскопические различия между использованием Maps и Beans значительны для вашего приложения, у вас есть гораздо большие проблемы, чтобы беспокоиться об этом.

Выберите любой подход, который является более читабельным / поддерживаемым / элегантным, и забудьте оразличия в производительности, потому что они почти наверняка незначительны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...