...

понедельник, 30 июня 2014 г.

Сравнение производительности хэшмапов и бинарных деревьев в Go

Наткнулся я на вот такой замечательный пакет для GO http://ift.tt/1vn31qT

Покрутив его мне стало интересно, а что будет если заменить map[string]Item на бинарное дерево, немного повозившись я это сделал и очень обрадовался результатами бенчмарка. Это и стало моей ошибкой.



Бенчмарк показывал среднее ускорение работы кэша почти в 2 раза, вот не сказка ли?

На радостях я тут же оформил пулл реквест (http://ift.tt/1myVDmV), получил ответ pmylund о том, что это выглядит интересно и он подумает.

А я тем временем использовал модифицированный пакет в своем проекте, но закрались в меня сомнения, а действительно ли это так, действительно ли есть прирост скорости в два раза?

И я решил провести небольшое исследование (читай: синтетический тест)

И вот что показали результаты:

Удаление записей



image

Получение записей



image

Заполнение



image

Цикл по структурам



image

Отсюда, можно судить, при больших объемах бинарное дерево проигрывает по производительности хэшмапу во всем, кроме итераций.

Сами тесты здесь, вместе с графиками

http://ift.tt/1q8PqEk

P.S. прошу прощения за несколько сумбурное повествование


P.P.S бенчмарк у go-cache показал такие скорости из-за малых объемов данных


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий