{"action":"created","issue":{"url":"https://api.github.com/repos/jemalloc/jemalloc/issues/465","repository_url":"https://api.github.com/repos/jemalloc/jemalloc","labels_url":"https://api.github.com/repos/jemalloc/jemalloc/issues/465/labels{/name}","comments_url":"https://api.github.com/repos/jemalloc/jemalloc/issues/465/comments","events_url":"https://api.github.com/repos/jemalloc/jemalloc/issues/465/events","html_url":"https://github.com/jemalloc/jemalloc/issues/465","id":180963991,"number":465,"title":"Implement further rtree optimizations","user":{"login":"jasone","id":245970,"avatar_url":"https://avatars.githubusercontent.com/u/245970?v=3","gravatar_id":"","url":"https://api.github.com/users/jasone","html_url":"https://github.com/jasone","followers_url":"https://api.github.com/users/jasone/followers","following_url":"https://api.github.com/users/jasone/following{/other_user}","gists_url":"https://api.github.com/users/jasone/gists{/gist_id}","starred_url":"https://api.github.com/users/jasone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasone/subscriptions","organizations_url":"https://api.github.com/users/jasone/orgs","repos_url":"https://api.github.com/users/jasone/repos","events_url":"https://api.github.com/users/jasone/events{/privacy}","received_events_url":"https://api.github.com/users/jasone/received_events","type":"User","site_admin":false},"labels":[{"id":63110220,"url":"https://api.github.com/repos/jemalloc/jemalloc/labels/optimization","name":"optimization","color":"009800","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/jemalloc/jemalloc/milestones/7","html_url":"https://github.com/jemalloc/jemalloc/milestones/5.0.0","labels_url":"https://api.github.com/repos/jemalloc/jemalloc/milestones/7/labels","id":1274132,"number":7,"title":"5.0.0","description":"","creator":{"login":"jasone","id":245970,"avatar_url":"https://avatars.githubusercontent.com/u/245970?v=3","gravatar_id":"","url":"https://api.github.com/users/jasone","html_url":"https://github.com/jasone","followers_url":"https://api.github.com/users/jasone/followers","following_url":"https://api.github.com/users/jasone/following{/other_user}","gists_url":"https://api.github.com/users/jasone/gists{/gist_id}","starred_url":"https://api.github.com/users/jasone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasone/subscriptions","organizations_url":"https://api.github.com/users/jasone/orgs","repos_url":"https://api.github.com/users/jasone/repos","events_url":"https://api.github.com/users/jasone/events{/privacy}","received_events_url":"https://api.github.com/users/jasone/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":12,"state":"open","created_at":"2015-08-26T19:22:36Z","updated_at":"2016-10-31T17:34:47Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2016-10-04T18:06:52Z","updated_at":"2016-10-31T22:17:01Z","closed_at":null,"body":"The rtree code implements multiple optimizations to speed up common case lookups, especially skipping the leading 16 bits and path caching, but it could be further specialized to encode differing numbers of bits at each tree level.  Currently (assuming 4 KiB pages) we encode 64-bit addresses as {[16],16,16,4}, and 32-bit addresses as {16,4}.  We would be better served by {[16],18,18} on x64, and {10,10} or perhaps even {20} (4 MiB) on 32-bit systems.\n\nOn a related note, although `rtree_elm_lookup()` is explicitly unrolled, we dynamically initialize `rtree_t`, which forces the compiler to load run-time constants rather than encode them as compile-time immediates.  The only purpose of the current generality is testing; surely it is still possible to adequately test the code absent this pessimization.\n\nSee #360 for context.\n"},"comment":{"url":"https://api.github.com/repos/jemalloc/jemalloc/issues/comments/257437038","html_url":"https://github.com/jemalloc/jemalloc/issues/465#issuecomment-257437038","issue_url":"https://api.github.com/repos/jemalloc/jemalloc/issues/465","id":257437038,"user":{"login":"jasone","id":245970,"avatar_url":"https://avatars.githubusercontent.com/u/245970?v=3","gravatar_id":"","url":"https://api.github.com/users/jasone","html_url":"https://github.com/jasone","followers_url":"https://api.github.com/users/jasone/followers","following_url":"https://api.github.com/users/jasone/following{/other_user}","gists_url":"https://api.github.com/users/jasone/gists{/gist_id}","starred_url":"https://api.github.com/users/jasone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasone/subscriptions","organizations_url":"https://api.github.com/users/jasone/orgs","repos_url":"https://api.github.com/users/jasone/repos","events_url":"https://api.github.com/users/jasone/events{/privacy}","received_events_url":"https://api.github.com/users/jasone/received_events","type":"User","site_admin":false},"created_at":"2016-10-31T22:17:01Z","updated_at":"2016-10-31T22:17:01Z","body":"@interwq, that would require us to initialize the nodes rather than using sparsely backed virtual memory, so we'd potentially need to use more levels (e.g. {[16], 9, 9, 9, 9}) to keep memory usage reasonable.  Any thoughts on whether more dependent loads would outweigh the benefits of fewer branches?"}}
{"actor":{"display_login":"jasone"}}