Details
-
Technical task
-
Resolution: Done
-
P2: Important
-
None
Description
Strings in QML cache files should not be copied but merely referenced and we should not unmap the cache files anymore.
Potential side-/sub-tasks include distinguishing on the JS side between run-time strings and read-only strings (different v4 string/vtable) and generating the full QArrayData so that we don't even need to allocate the the "string private" anymore.
Preliminary analysis suggests that that 64-bit version of the array data for a read-only string may be binary compatible with the 32-bit version, on little-endian.
For the V4 value string handling, perhaps we can store a pointer to the array data and tag it accordingly, so that a V4 value pointing to such a read-only string is free of any gc or allocation overhead.
The read-only QString embedding in the cache files gives ~5% progression on creation/qml.basictypes/delegates_basictype_string.qml and ~3% progression on creation/qml.modelaccess/modelaccess_string.qml on linux x86-64 (release).