Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Improve performance of TransactionLog.add() in 3.x #15435
…move() call. Code may be considered cleaner/simpler now, but the reason for this change is performance. When in a single transaction entries were changed, and then changed again (TransactionalMap.put() called on the same entry), the TransactionLog.add() method did a LinkedList.remove() call which has complexity O(n). The new implementation that uses LinkedHashMap instead of LinkedList+HashMap is up to 20% faster on 1000-entry transaction, and up to three times faster on 10000-entry transaction. On small transactions performance is the same.
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews.