{"action":"created","issue":{"url":"https://api.github.com/repos/cuplv/adapton.rust/issues/4","repository_url":"https://api.github.com/repos/cuplv/adapton.rust","labels_url":"https://api.github.com/repos/cuplv/adapton.rust/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/cuplv/adapton.rust/issues/4/comments","events_url":"https://api.github.com/repos/cuplv/adapton.rust/issues/4/events","html_url":"https://github.com/cuplv/adapton.rust/pull/4","id":196163923,"number":4,"title":"Port of probablistic tries from original ocaml adapton","user":{"login":"baxtersa","id":11036637,"avatar_url":"https://avatars.githubusercontent.com/u/11036637?v=3","gravatar_id":"","url":"https://api.github.com/users/baxtersa","html_url":"https://github.com/baxtersa","followers_url":"https://api.github.com/users/baxtersa/followers","following_url":"https://api.github.com/users/baxtersa/following{/other_user}","gists_url":"https://api.github.com/users/baxtersa/gists{/gist_id}","starred_url":"https://api.github.com/users/baxtersa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/baxtersa/subscriptions","organizations_url":"https://api.github.com/users/baxtersa/orgs","repos_url":"https://api.github.com/users/baxtersa/repos","events_url":"https://api.github.com/users/baxtersa/events{/privacy}","received_events_url":"https://api.github.com/users/baxtersa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-12-16T22:02:34Z","updated_at":"2016-12-16T22:13:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cuplv/adapton.rust/pulls/4","html_url":"https://github.com/cuplv/adapton.rust/pull/4","diff_url":"https://github.com/cuplv/adapton.rust/pull/4.diff","patch_url":"https://github.com/cuplv/adapton.rust/pull/4.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/cuplv/adapton.rust/issues/comments/267708743","html_url":"https://github.com/cuplv/adapton.rust/pull/4#issuecomment-267708743","issue_url":"https://api.github.com/repos/cuplv/adapton.rust/issues/4","id":267708743,"user":{"login":"baxtersa","id":11036637,"avatar_url":"https://avatars.githubusercontent.com/u/11036637?v=3","gravatar_id":"","url":"https://api.github.com/users/baxtersa","html_url":"https://github.com/baxtersa","followers_url":"https://api.github.com/users/baxtersa/followers","following_url":"https://api.github.com/users/baxtersa/following{/other_user}","gists_url":"https://api.github.com/users/baxtersa/gists{/gist_id}","starred_url":"https://api.github.com/users/baxtersa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/baxtersa/subscriptions","organizations_url":"https://api.github.com/users/baxtersa/orgs","repos_url":"https://api.github.com/users/baxtersa/repos","events_url":"https://api.github.com/users/baxtersa/events{/privacy}","received_events_url":"https://api.github.com/users/baxtersa/received_events","type":"User","site_admin":false},"created_at":"2016-12-16T22:13:33Z","updated_at":"2016-12-16T22:13:33Z","body":"So, performance of the DCG engine is worse than the Naive engine for one of my two benchmark algorithms (performance is roughly identical for the other).\r\n\r\nThe results of the `add_dups` benchmark (debug, no optimizations, though release yeilds roughly the same performance ratio) when run on my machine:\r\n```\r\ntest add_dups::benchmark_naive_trie ... bench:     777,341 ns/iter (+/- 113,150)\r\ntest add_dups::benchmark_dcg_trie   ... bench:   1,171,516 ns/iter (+/- 153,272)\r\n```\r\n\r\nAttached are some flamegraphs (svg's) captured of the performance. Notably, the DCG benchmark spends roughly a third of its time in the engine, performing `cell` and `force` operations on `art`s. The naive benchmark spend ony 4% of it's time in unkown functions allocating it appears, but nearly all of the rest of its time is spent in either the benchmark framework or my trie implementation.\r\n\r\nThis hints to the overhead of the DCG engine as the cause of the performance hit, but I wanted to open this up to get more eyes on the code. Maybe I'm misusing `art`s in a way that causes this overhead needlessly.\r\n\r\n[flamegraphs.zip](https://github.com/cuplv/adapton.rust/files/658353/flamegraphs.zip)\r\n\r\n\r\n\r\n"}}
{"actor":{"display_login":"baxtersa"}}