I'm no longer sure this is the right/best approach. Especially after your collection of data for EVM memory usage behavior.
I think maybe, instead, for now, the main-thread memory (currently used for anything other then ROtrx threads) should be constructed with something like a 16MB threshold (or possibly even left at 33MB, I haven't done the math), and then the ROtrx thread memory be something much lower.. even 128 or 256KB. This way we still get absolute maximum performance for EVM trxs in blocks.
So in other words, maybe it shouldn't be a compile time knob but something passed in the ctor based on the thread usage criteria as above.
I'm no longer sure this is the right/best approach. Especially after your collection of data for EVM memory usage behavior.
I think maybe, instead, for now, the main-thread memory (currently used for anything other then ROtrx threads) should be constructed with something like a 16MB threshold (or possibly even left at 33MB, I haven't done the math), and then the ROtrx thread memory be something much lower.. even 128 or 256KB. This way we still get absolute maximum performance for EVM trxs in blocks.
So in other words, maybe it shouldn't be a compile time knob but something passed in the ctor based on the thread usage criteria as above.