Remix.run Logo
hunterpayne a day ago

Because the jit will let the unoptimized code run a few (hundred) times to take measurements to know what needs to be optimized and how it needs to be optimized. This is a good solution and makes hotspot very effective. The problem is that it happens randomly a few minutes/seconds into the operation of the service. So you randomly have a big pause with the performance hit everytime you run the service. The upside is that this only happens once. But you have to plan for a big performance hit to requests which are unlucky enough to be called at the wrong time.

pretzellogician a day ago | parent | next [-]

And this can generally be avoided as well, by doing "warmup" when starting your service (effectively, mock some calls), but before accepting requests.

hunterpayne a day ago | parent [-]

Of course, but then you have to actually do this. It is just another complexity to add. Also, I was answering a question about the hows and whys of the jit. I wasn't saying it was impossible to work around.

munchler a day ago | parent | prev [-]

Ah, that’s interesting. I wasn’t aware that JIT-ing will do that sort of performance analysis first. Thank you for the explanation.