# Performance test Comparison between: * vanilla-delegation ([here](https://github.com/Matriz88/event-delegation)) * delegate ([here](https://www.npmjs.com/package/delegate)) * jQuery 3.4.0. From results below the difference is minimal both vanilla libraries are equally fast and faster than jQuery. However the advantage of `vanilla-delegation` library is its lookup optimization. Look the [how to guide](/extras/how-delegation-lookup-works.md) to see how it works and how it prevents unnecessary checks, making it even faster than the other libraries in some scenarios. The following results are meant to demonstrate the performance of native libraries such as vanilla-delegation or delegate. **vanilla-delegation** TOTAL AVG (ms): 0,221149998639400 | test 1 (ms) | test 2 (ms) | test 3 (ms) | |-------------------|-------------------|-------------------| | 0,469999969936907 | 0,630000024102628 | 0,505000003613531 | | 0,334999989718198 | 0,464999990072101 | 0,440000032540410 | | 0,300000014249235 | 0,414999958593398 | 0,315000012051314 | | 0,324999971780926 | 0,354999967385083 | 0,304999994114041 | | 0,304999994114041 | 0,324999971780926 | 0,360000005457550 | | 0,300000014249235 | 0,349999987520277 | 0,300000014249235 | | 0,304999994114041 | 0,304999994114041 | 0,319999991916120 | | 0,534999999217689 | 0,554999976884573 | 0,609999988228082 | | 0,315000012051314 | 0,310000032186508 | 0,309999973978847 | | 0,304999994114041 | 0,309999973978847 | 0,409999978728592 | | 0,305000052321702 | 0,300000014249235 | 0,179999973624944 | | 0,304999994114041 | 0,295000034384429 | 0,174999993760138 | | 2,050000010058280 | 0,524999981280416 | 0,209999969229102 | | 0,180000031832605 | 0,190000049769878 | 0,240000023040920 | | ... | ... | ... | --- **delegate** TOTAL AVG (ms): 0,271800000142927 | test 1 (ms) | test 2 (ms) | test 3 (ms) | |-------------------|-------------------|-------------------| | 0,569999974686652 | 0,564999994821846 | 0,729999970644712 | | 0,390000001061707 | 0,414999958593398 | 0,514999963343143 | | 0,410000036936253 | 0,390000001061707 | 0,464999990072101 | | 0,370000023394823 | 0,365000043530017 | 0,479999987874180 | | 0,670000037644058 | 0,364999985322356 | 0,469999969936907 | | 0,360000005457550 | 0,360000005457550 | 0,539999979082494 | | 0,360000005457550 | 0,380000041332095 | 0,469999969936907 | | 0,675000017508864 | 0,639999983832240 | 0,784999981988221 | | 0,590000010561197 | 0,370000023394823 | 0,514999963343143 | | 0,505000003613531 | 0,375000003259629 | 2,815000014379620 | | 0,479999987874180 | 0,364999985322356 | 0,250000040978193 | | 0,479999987874180 | 0,400000018998980 | 0,255000020842999 | | 3,014999965671440 | 0,379999983124434 | 0,255000020842999 | | 0,699999975040555 | 0,365000043530017 | 0,264999980572611 | | ... | ... | ... | --- **jQuery** TOTAL AVG (ms): 1,636349998686150 | test 1 (ms) | test 2 (ms) | test 3 (ms) | |-------------------|-------------------|-------------------| | 6,489999999757850 | 4,820000031031660 | 7,379999966360620 | | 3,425000002607700 | 2,149999956600360 | 4,314999969210470 | | 2,810000034514810 | 3,055000037420540 | 4,119999997783450 | | 3,014999965671440 | 2,540000015869730 | 4,970000009052450 | | 6,790000014007090 | 5,530000024009490 | 4,140000033657990 | | 5,599999974947420 | 1,575000002048900 | 2,099999983329320 | | 2,924999978858970 | 1,219999976456160 | 1,434999983757730 | | 3,410000004805620 | 1,175000041257590 | 1,459999999497080 | | 2,989999949932090 | 2,089999965392050 | 1,440000021830200 | | 4,189999948721370 | 1,315000001341100 | 1,584999961778520 | | 3,209999995306130 | 1,229999994393430 | 2,310000010766080 | | 2,589999989140770 | 1,179999962914730 | 1,690000004600730 | | 2,510000020265570 | 1,149999967310570 | 1,504999992903320 | | 1,749999995809040 | 1,174999983049920 | 1,459999999497080 | | ... | ... | ... | ### Test Scenario Given 1000 nested `

`. ```html

...

...

``` Listener has been attached to the `` and delegated selector was `'section'`. 200 Clicks were fired on last `` so when the event propagates up to the body the listener is triggered the libraries have to look up from `` through 999 parents `

` to find the `section`. 3 test samples have been chosen randomly for each library. Each library has been tested separately on Chrome 73.