Улучшения в производительности Hash::Ordered

Темы:

Hash::Ordered — это модуль для создания упорядоченных хешей, ключи в которых хранятся в заданном порядке. Поскольку модуль написан на чистом Perl, а упорядоченные хеши --- это объекты, операции над которыми производятся с помощью методов, то подобный хеш работает медленнее, чем обычный хеш. Такова цена сохранения упорядоченности хеша.

Как сообщает Дэвид Голден в новой версии 0.009 сделана оптимизация, которая в некоторых случаях значительно ускоряет работу с упорядоченными хешами. Было проведено сравнение производительности между версиями Hash::Ordered 0.002 и 0.009. Для наглядности представлен график сравнения:

Бенчмарк Hash::Ordered

Виден рост по многим тестам, особенно выросла производительность при удалении в хеше с большим числом элементов. Практически не изменилась скорость замены элементов, несколько снизилась скорость добавления (за счёт проверки, что ключ — это строка, а не ссылка).