Description
In the present SPDY implementation in ATS, there is no client context reuse. Though the spdy session is reused, each stream (even the non-concurrent ones) is allocated a set of new/separate context buffers (including internal plugin_vc, client_session, SM object, header heap, transaction buffers, server session objects etc). Some of these objects are allocated from global pool, while some are from per-thread pool. The context memory is not reused unlike the non-spdy session, where there can be at most one transaction on a given connection/session at a time.
Besides being very inefficient (the allocation/deallocation) this also leads to larger memory foot print over time, due to the relatively poor reuse of per thread pool objects (especially, when there are a high number of threads - e.g 100+ like we have).
I am currently testing a patch that does not deallocate the streams when the transaction completes and reuses those for new/subsequent streams.