diff options
author | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2014-06-01 19:12:36 +0000 |
---|---|---|
committer | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2014-06-01 19:12:36 +0000 |
commit | 757c4943401d6a1922954cdac6ab8a901c8cbb51 (patch) | |
tree | e543fe4d2acd9e2b0edefbf694af6ca45032c454 /tests/test_dom_modify.cpp | |
parent | 6d43ad2870b9411c409fcd12937e02eb44b2a76c (diff) |
Improve XPath allocator performance
When allocating new pages, make sure that the page has at least 1/4 of the
base page size free. This makes sure that we can do small allocations after
big allocations (i.e. huge node lists) without doing a heap alloc.
This is important because XPath stack code always reclaims extra pages after
evaluating sub-expressions, so allocating a small chunk of memory and then
rolling the state back is a common case (filtering a node list using a
predicate usually does this).
A better solution involves smarter allocation rollback strategy, but the
implemented solution is simple and practical.
git-svn-id: https://pugixml.googlecode.com/svn/trunk@999 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'tests/test_dom_modify.cpp')
0 files changed, 0 insertions, 0 deletions