Skip to content

Latest commit

 

History

History
50 lines (44 loc) · 2.61 KB

README.md

File metadata and controls

50 lines (44 loc) · 2.61 KB

jmh

Benchmark основных операций в базовых классах с помощью JMH

ArrayList vs LinkedList

  • вставка значения в конец списка
  • вставка значения в начало списка
  • вставка значения в середину списка
  • получение значения из конца списка
  • получение значения из начала списка
  • получение значения из середины списка

HashMap vs TreeMap

  • вставка ключ-значение
  • получение значения по ключу

Запуск теста:

git clone https://github.com/msamoylych/jmh.git
cd jmh
mvn clean package
java -jar target\jmh.jar -jvmArgs "-Xms1G -Xmx1G"

Результат для Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz:

Benchmark                             Mode  Cnt       Score       Error  Units
ArrayListBenchmark.addFirst             ss  100   60765,110 ?  3289,449  ns/op
ArrayListBenchmark.addFirstWithGrow     ss  100  188932,740 ? 20909,644  ns/op
ArrayListBenchmark.addLast              ss  100    2172,530 ?   198,475  ns/op
ArrayListBenchmark.addLastWithGrow      ss  100  140885,880 ? 18135,679  ns/op
ArrayListBenchmark.addMiddle            ss  100   35495,240 ?  2265,669  ns/op
ArrayListBenchmark.addMiddleWithGrow    ss  100  155934,950 ? 24135,195  ns/op
ArrayListBenchmark.getFirst             ss  100    3271,540 ?   483,624  ns/op
ArrayListBenchmark.getLast              ss  100    2463,330 ?   277,437  ns/op
ArrayListBenchmark.getMiddle            ss  100    4182,440 ?   456,135  ns/op
LinkedListBenchmark.addFirst            ss  100    4849,580 ?   492,284  ns/op
LinkedListBenchmark.addLast             ss  100    2065,620 ?   232,359  ns/op
LinkedListBenchmark.addMiddle           ss  100  120841,800 ? 13909,459  ns/op
LinkedListBenchmark.getFirst            ss  100    4610,110 ?   321,066  ns/op
LinkedListBenchmark.getLast             ss  100    3763,300 ?   273,486  ns/op
LinkedListBenchmark.getMiddle           ss  100  132970,120 ? 14069,491  ns/op
HashMapBenchmark.get                    ss  100    5576,600 ?   631,705  ns/op
HashMapBenchmark.put                    ss  100    3066,290 ?   175,006  ns/op
HashMapBenchmark.putWithResize          ss  100  882820,630 ? 43866,334  ns/op
TreeMapBenchmark.get                    ss  100    4729,790 ?   583,769  ns/op
TreeMapBenchmark.put                    ss  100    3023,480 ?   437,909  ns/op

Данные значения стоит рассматривать только как относительные величины