Skip to content

Latest commit

 

History

History
109 lines (88 loc) · 4.59 KB

performance-test.md

File metadata and controls

109 lines (88 loc) · 4.59 KB

Performance test

Comparison between:

  • vanilla-delegation (here)
  • delegate (here)
  • 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 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 <p>.

<body>
  <section>
      <p>
          <p>
              ...
                  <p>
                      <span></span>
                  </p>
              ...
          </p>
      </p>
    </section>
</body>

Listener has been attached to the <body> and delegated selector was 'section'.

200 Clicks were fired on last <span> so when the event propagates up to the body the listener is triggered the libraries have to look up from <span> through 999 parents <p> to find the section.

3 test samples have been chosen randomly for each library.

Each library has been tested separately on Chrome 73.