{"action":"opened","issue":{"url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap/issues/134","repository_url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap","labels_url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap/issues/134/labels{/name}","comments_url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap/issues/134/comments","events_url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap/issues/134/events","html_url":"https://github.com/RoaringBitmap/RoaringBitmap/issues/134","id":198169424,"number":134,"title":"streamline the implementations of iterators to drastically reduce memory allocation","user":{"login":"lemire","id":391987,"avatar_url":"https://avatars.githubusercontent.com/u/391987?v=3","gravatar_id":"","url":"https://api.github.com/users/lemire","html_url":"https://github.com/lemire","followers_url":"https://api.github.com/users/lemire/followers","following_url":"https://api.github.com/users/lemire/following{/other_user}","gists_url":"https://api.github.com/users/lemire/gists{/gist_id}","starred_url":"https://api.github.com/users/lemire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lemire/subscriptions","organizations_url":"https://api.github.com/users/lemire/orgs","repos_url":"https://api.github.com/users/lemire/repos","events_url":"https://api.github.com/users/lemire/events{/privacy}","received_events_url":"https://api.github.com/users/lemire/received_events","type":"User","site_admin":false},"labels":[{"id":266861836,"url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap/labels/help%20wanted","name":"help wanted","color":"009800","default":true},{"id":194719902,"url":"https://api.github.com/repos/RoaringBitmap/RoaringBitmap/labels/performance","name":"performance","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-30T16:51:10Z","updated_at":"2016-12-30T16:51:10Z","closed_at":null,"body":"Currently, iterators are implemented by instantiating sub-iterators that run over the containers. This approach requires us to create many more temporary objects than necessary.\r\n\r\nA much simpler approach is the one taken by the ``CRoaring`` library where no memory allocation is done... \r\nhttps://github.com/RoaringBitmap/CRoaring/blob/master/src/roaring.c#L1156\r\n\r\nThis should reduce the amount of code *and* reduce the pressure on the garbage collector, which should improve performance in real-life systems.\r\n\r\nThis is related to https://github.com/RoaringBitmap/RoaringBitmap/issues/44 but distinct."}}
{"actor":{"display_login":"lemire"}}