Email or username:

Password:

Forgot your password?
Aral Balkan

FML, something that’s changed between Node 12.16.2 and 18.16.0 has made the OCSP stapling library I’m using¹ 1,000× slower (~4ms vs ~4s per request).

At least I know where the issue is… Tomorrow, I dig into the library to try and narrow it down further.

(The network graph in Firefox was useful as it showed that the problem was with the TLS Setup. And 0x² and its flame graphs helped me narrow it down further.)

¹ github.com/indutny/ocsp#ocsp-a
² github.com/davidmarkclements/0

#Kitten #TLS #OCSP #NodeJS #dev

2 comments
Aral Balkan

Right, well, whatever the regression is, it doesn’t exist in Node 20.3.1.

To whit, the time it takes to run my SNICallback:

Node 12.16.2: ~10ms
Node 18.16.1: ~4,000ms
Node 20.3.1: ~10ms

So there’s been a *massive* regression in performance in something in Node 18 (LTS) – buffers/strings? – that appears to be fixed in Node 20 (but not backported) that’s affecting the ocsp module.

CC @indutny – if you get a chance, could you possibly let the right folks at Node core know about this? Thanks :)

Right, well, whatever the regression is, it doesn’t exist in Node 20.3.1.

To whit, the time it takes to run my SNICallback:

Node 12.16.2: ~10ms
Node 18.16.1: ~4,000ms
Node 20.3.1: ~10ms

So there’s been a *massive* regression in performance in something in Node 18 (LTS) – buffers/strings? – that appears to be fixed in Node 20 (but not backported) that’s affecting the ocsp module.

Aral Balkan

@indutny PS. Profiling the ocsp.request.generate() function in your (excellent/life saver) oscp module between Node versions 12 (I haven’t tested with >12 but <18) , 18, and 20 should reproduce the performance regresssion in Node 18.

Go Up