{"action":"created","issue":{"url":"https://api.github.com/repos/fscheck/FsCheck/issues/291","repository_url":"https://api.github.com/repos/fscheck/FsCheck","labels_url":"https://api.github.com/repos/fscheck/FsCheck/issues/291/labels{/name}","comments_url":"https://api.github.com/repos/fscheck/FsCheck/issues/291/comments","events_url":"https://api.github.com/repos/fscheck/FsCheck/issues/291/events","html_url":"https://github.com/fscheck/FsCheck/pull/291","id":165996135,"number":291,"title":"Optimizations for array generation and shrinking","user":{"login":"jack-pappas","id":477287,"avatar_url":"https://avatars.githubusercontent.com/u/477287?v=3","gravatar_id":"","url":"https://api.github.com/users/jack-pappas","html_url":"https://github.com/jack-pappas","followers_url":"https://api.github.com/users/jack-pappas/followers","following_url":"https://api.github.com/users/jack-pappas/following{/other_user}","gists_url":"https://api.github.com/users/jack-pappas/gists{/gist_id}","starred_url":"https://api.github.com/users/jack-pappas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jack-pappas/subscriptions","organizations_url":"https://api.github.com/users/jack-pappas/orgs","repos_url":"https://api.github.com/users/jack-pappas/repos","events_url":"https://api.github.com/users/jack-pappas/events{/privacy}","received_events_url":"https://api.github.com/users/jack-pappas/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-17T21:03:30Z","updated_at":"2016-07-20T10:15:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/fscheck/FsCheck/pulls/291","html_url":"https://github.com/fscheck/FsCheck/pull/291","diff_url":"https://github.com/fscheck/FsCheck/pull/291.diff","patch_url":"https://github.com/fscheck/FsCheck/pull/291.patch"},"body":"Modified Gen functions for generating arbitrary array instances to avoid intermediate conversions to F# lists (and resulting allocations).\r\nModified shrinker for 1D arrays to avoid intermediate list allocations.\r\nModified shrinker for strings to use the array shrinker, and subsequently avoid allocating intermediate char lists.\r\n\r\nI noticed these allocations when profiling a slow-running FsCheck test I wrote at one point (for a data type which used both arrays and strings). Running ``build.cmd`` before and after this change seems to show the tests running slightly faster, although I haven't repeated it enough times for statistical significance. In any case, tests which heavily use arrays and strings should notice a performance improvement due to eliminating the conversions to/from F# lists (and also due to spending less time in GCs related to those list allocations).\r\n"},"comment":{"url":"https://api.github.com/repos/fscheck/FsCheck/issues/comments/233909612","html_url":"https://github.com/fscheck/FsCheck/pull/291#issuecomment-233909612","issue_url":"https://api.github.com/repos/fscheck/FsCheck/issues/291","id":233909612,"user":{"login":"kurtschelfthout","id":164917,"avatar_url":"https://avatars.githubusercontent.com/u/164917?v=3","gravatar_id":"","url":"https://api.github.com/users/kurtschelfthout","html_url":"https://github.com/kurtschelfthout","followers_url":"https://api.github.com/users/kurtschelfthout/followers","following_url":"https://api.github.com/users/kurtschelfthout/following{/other_user}","gists_url":"https://api.github.com/users/kurtschelfthout/gists{/gist_id}","starred_url":"https://api.github.com/users/kurtschelfthout/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kurtschelfthout/subscriptions","organizations_url":"https://api.github.com/users/kurtschelfthout/orgs","repos_url":"https://api.github.com/users/kurtschelfthout/repos","events_url":"https://api.github.com/users/kurtschelfthout/events{/privacy}","received_events_url":"https://api.github.com/users/kurtschelfthout/received_events","type":"User","site_admin":false},"created_at":"2016-07-20T10:15:26Z","updated_at":"2016-07-20T10:15:26Z","body":"Overall, I'm liking this PR!"}}
{"actor":{"display_login":"kurtschelfthout"}}