This is a quick update to the benchmark described in the previous article. The test procedures are revised as below:
- empty cache and reload each page five times.
- record DOMContentLoad, Load, and Finish time for each reload. Take the average.
- repeat for select_timeout equal to 1s, 5s and 10s.
The benchmark was performed on v2.0.0-rc1 and v35.HZ12.Kk within a short period of time, ~15mins. Hence, the variation in contents and network conditions are minimised.
The best performance is highlighted in green. For ver. KK (and before), a select_timeout of 1s indicates indeed a good rule of thumb. For v2, 10s is a better choice, and also beats the best time of ver. KK.
The event loop in pixelserv-tls v2 in which it listens for incoming requests is very different from previous versions. This explains the observed difference in performance with respect to select_timeout.
Update on Release v2.0.1
v2.0.1 is a bug fix release. However, there are still two changes that enhance efficiency in pixelserv-tls:
- FIXED incorrect logics of select() in the main event loop
- CHANGED more efficient check for next request in a service thread
The first change is a great help when pixelserv-tls is under load. The second change guarantees fastest response possible to a new request on an established connection. These improvements are in scales of tens to hundreds of millisecond. A single shot test like outlined above can hardly detect it. Hence, for v2.0.1-rc4, I decided to benchmark against NXDOMAIN.
There are different schools of thought on DNS-based adblock. Some authors apparently have better understanding than other solutions. One school of thought is to return NXDOMAIN on a blocked advert host from DNS server/forwarder rather than 0.0.0.0. With NXDOMAIN, a client will not attempt to connect. In theory it should be faster than 0.0.0.0. However, for today's complex websites, the client may still run into issues since it's just a bit more efficient of bumping into the wall.
Note that pixelserv-tls like in all my previous benchmarks runs on RT-AC56U, a 800MHz ARM Cortex A9. So expect faster responses if it were running on a better processor or a AMD64 PC.
The table shows no clear winner but pixelserv-tls at least works as fast as NXDOMAIN. On some situations faster than NXDOMAIN e.g. the 'foxnews.com' which appears like a poorly coded website.
Consider pixelserv-tls is also a tool for inspecting privacy breach as well as logging access URLs. This benchmark ensures pixelserv-tls users need not worry about penalty by running it and being beaten by another adblock solution claiming to be fastest.
Originally published on Dec 6, 2017