Torsten Foertsch wrote:
These figures match my observations. It also means that you are not using big content generators in the response phase like Catalyst.

Correct. Response content is generated by backend servers, which is then delivered to clients either from the local cache, or via mod_proxy.

Did you know this little trick?

In PostReadRequest or so:
$r->pnotes->{xp}=$r->pool->new;
$r->push_handlers(PerlFixupHandler=>sub {delete $_[0]->pnotes->{xp}; 0});

No, I did not. Thanks. I'm not sure if I want to (or even need to) use it though, but it's definitely good to have as an option. Even if it is hackish :)

Did you know that you can even share data between Perl interpreters by using "threads" and "threads::shared"?

I'm assuming that this will only work for interpreters inside the same child process? If so, then I don't see that much use for it. If on the other hand it would work globally across all interpreters, I might have some use for it.

already in the parent process before it forks. I am thinking of a patch to implement this. But it would mean to abandon growing and shrinking of the interpreter pool and the limit of requests per interpreter. But in the end I think it would be more reasonable than it is now.

This would be perfect in my use case. I don't need to grow or shrink the interpreter pool, and limiting the number of requests shouldn't be needed either - the limit can be set on the apache process side. If you come up with a patch for this, I'd be happy to give it a try!

Cheers,
-- Jani

Reply via email to