Bug #78664
closedTransientMemoryBackend + VariableFrontend = unserialize/serialize mayhem
100%
Description
When combining a VariableFrontend with a TransientMemoryBackend it would be possible to store variables directly instead of forcing them to be serialized and unserialized repeatedly. Per definition, a TransientMemoryBackend is able to hold references to objects but the VariableFrontend is unaware of the backend type and so only passes string values that it has serialized, and only returns values it unserialized from strings. Perhaps worse, the TransientMemoryBackend throws an exception if attempting to store anything other than a string - which makes little sense given the above.
With a few simple modifications and an additional contract indicating that a backend is capable of holding references as well as arbitrary data types, the VariableFrontend can use transient memory storage MUCH more efficiently.
An example profile I'm watching right now has approximately 100 copy operations which are heavy on the ReferenceIndex which in turn is heavy on the runtime cache, now shows no less than 30,000 fewer calls to unserialize.
Updated by Gerrit Code Review about 8 years ago
- Status changed from New to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50600
Updated by Gerrit Code Review about 8 years ago
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50600
Updated by Anonymous about 8 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset 5d18c6703c70b1bb3f68bd90ce4f1df7de0b7fb4.
Updated by Gerrit Code Review about 8 years ago
- Status changed from Resolved to Under Review
Patch set 1 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50634
Updated by Gerrit Code Review about 8 years ago
Patch set 2 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50634
Updated by Gerrit Code Review about 8 years ago
Patch set 3 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50634
Updated by Gerrit Code Review about 8 years ago
Patch set 4 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50634
Updated by Gerrit Code Review about 8 years ago
Patch set 5 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/50634
Updated by Anonymous about 8 years ago
- Status changed from Under Review to Resolved
Applied in changeset efdb548ec745ed093bdc7623eaa5714f86e0345d.