Optimization: Keep some requests between GC.#120
Conversation
|
@tv42 I have to second this one, big time. For comparison, I wrote a "reference" fuse implementation that is effectively a pass-through to the OS file system, and I've only done extremely simple benchmarks, but using this fork makes write performance approximately 2x faster. @nyaxt furthermore, I tested values of This might indicate a more overall design discussion, but just of note:
I'm going to send up the dummy implementation as a separate PR. |
|
Sorry for being too silent. I'm looking at very similar problems right now, and realized this probably isn't prominent enough: Long-term plan for performance, as far as Linux is concerned, is That gets us rid of managing per-request buffers completely. |
|
9e8e652 should help here. Leaving this pull open until I've actually had time to experiment on whether it's useful even after the decreased gc churn. |
Allocating buffer of bufSize is typically large enough to kick off GC, and GC flushes all pooled messages.
To avoid too much GC kicking in, let 2 messages survive between GC.
This change makes https://github.com/nyaxt/otaru faster by 30%.