First page Back Continue Last page Graphics
Performance
Non-transactional code only needs to check whether a memory operand is FLAG before continuing.
- On superscalar processors, there are plenty of extra functional units to do the check
- The branch is extremely predictable
- This gives only a few % slowdown
Once FLAGged, transactional code operates directly on the object’s “version”
Creating versions can be an issue for large arrays; use “functional array” techniques
Notes: