TT doesn't do anything with shared memory.
I meant the copy-on-write issue. HTC keeps the compiled objects in memory, but
it doesn't write on the data structure, so that it stays shared between processes when it was preloaded before forking.
I don't know how TT handles this; is there a preload mechanism?
It wouldn't surprise me if TT used more memory than HTC, but I expect they aren't that far apart.
Seems like HTC uses 75-80% of the memory of TT. Which is what you would expect, probably.
A memory benchmark would certainly be interesting, but it's very hard to get accurate numbers that account for things like copy-on-write sharing.
I worked on my memory benchmark a bit:
bench_mem.pl
If I didn't make a mistake, it shows that the objects stay shared for both modules (root process doesn't change its size).
update: I think the script is still not working correctly...
Anyway, recreating the TT object on every request is a common mistake by new TT users.
right. it's probably because it's different from HTML::Template, for example, where an object represents a template.