{"action":"created","issue":{"url":"https://api.github.com/repos/BurntSushi/rust-csv/issues/127","repository_url":"https://api.github.com/repos/BurntSushi/rust-csv","labels_url":"https://api.github.com/repos/BurntSushi/rust-csv/issues/127/labels{/name}","comments_url":"https://api.github.com/repos/BurntSushi/rust-csv/issues/127/comments","events_url":"https://api.github.com/repos/BurntSushi/rust-csv/issues/127/events","html_url":"https://github.com/BurntSushi/rust-csv/pull/127","id":353234905,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEwMzM4MTIx","number":127,"title":"add SingleFieldWriter for progressive (== faster) serialization","user":{"login":"huonw","id":1203825,"node_id":"MDQ6VXNlcjEyMDM4MjU=","avatar_url":"https://avatars1.githubusercontent.com/u/1203825?v=4","gravatar_id":"","url":"https://api.github.com/users/huonw","html_url":"https://github.com/huonw","followers_url":"https://api.github.com/users/huonw/followers","following_url":"https://api.github.com/users/huonw/following{/other_user}","gists_url":"https://api.github.com/users/huonw/gists{/gist_id}","starred_url":"https://api.github.com/users/huonw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huonw/subscriptions","organizations_url":"https://api.github.com/users/huonw/orgs","repos_url":"https://api.github.com/users/huonw/repos","events_url":"https://api.github.com/users/huonw/events{/privacy}","received_events_url":"https://api.github.com/users/huonw/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-08-23T05:55:51Z","updated_at":"2018-08-23T11:46:52Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/BurntSushi/rust-csv/pulls/127","html_url":"https://github.com/BurntSushi/rust-csv/pull/127","diff_url":"https://github.com/BurntSushi/rust-csv/pull/127.diff","patch_url":"https://github.com/BurntSushi/rust-csv/pull/127.patch"},"body":"This struct is an implementation detail that allows for progressive\r\nwriting of a field into a writer's internal buffer, which means it can\r\nbe used as a fmt::Write-r (i.e. with write!), and thus avoid more\r\ntemporary allocations with integers and arbitrary user structures (if\r\nthey serialize themselves through `Serializer::collect_seq`).\r\n\r\nThis improves the benchmarks:\r\n\r\n     name                              before.txt ns/iter     after.txt ns/iter      diff ns/iter   diff %  speedup\r\n     count_game_serialize_owned_bytes  14,281,542 (154 MB/s)  13,410,592 (164 MB/s)      -870,950   -6.10%   x 1.06\r\n     count_game_serialize_owned_str    14,325,692 (153 MB/s)  13,572,390 (162 MB/s)      -753,302   -5.26%   x 1.06\r\n     count_mbta_serialize_owned_bytes  3,238,056 (192 MB/s)   2,645,566 (235 MB/s)       -592,490  -18.30%   x 1.22\r\n     count_mbta_serialize_owned_str    3,251,586 (191 MB/s)   2,648,981 (235 MB/s)       -602,605  -18.53%   x 1.23\r\n     count_nfl_serialize_owned_bytes   6,635,845 (205 MB/s)   5,045,906 (270 MB/s)     -1,589,939  -23.96%   x 1.32\r\n     count_nfl_serialize_owned_str     6,662,848 (204 MB/s)   5,341,465 (255 MB/s)     -1,321,383  -19.83%   x 1.25\r\n     count_pop_serialize_owned_bytes   10,289,241 (92 MB/s)   7,750,243 (123 MB/s)     -2,538,998  -24.68%   x 1.33\r\n     count_pop_serialize_owned_str     10,146,352 (94 MB/s)   7,587,681 (125 MB/s)     -2,558,671  -25.22%   x 1.34\r\n\r\nNotably the improvement is smaller for the 'game' benchmarks, where\r\nthe serialized values are mostly strings, and much larger for the\r\nothers which have mostly integers/floats.\r\n"},"comment":{"url":"https://api.github.com/repos/BurntSushi/rust-csv/issues/comments/415386415","html_url":"https://github.com/BurntSushi/rust-csv/pull/127#issuecomment-415386415","issue_url":"https://api.github.com/repos/BurntSushi/rust-csv/issues/127","id":415386415,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNTM4NjQxNQ==","user":{"login":"BurntSushi","id":456674,"node_id":"MDQ6VXNlcjQ1NjY3NA==","avatar_url":"https://avatars3.githubusercontent.com/u/456674?v=4","gravatar_id":"","url":"https://api.github.com/users/BurntSushi","html_url":"https://github.com/BurntSushi","followers_url":"https://api.github.com/users/BurntSushi/followers","following_url":"https://api.github.com/users/BurntSushi/following{/other_user}","gists_url":"https://api.github.com/users/BurntSushi/gists{/gist_id}","starred_url":"https://api.github.com/users/BurntSushi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BurntSushi/subscriptions","organizations_url":"https://api.github.com/users/BurntSushi/orgs","repos_url":"https://api.github.com/users/BurntSushi/repos","events_url":"https://api.github.com/users/BurntSushi/events{/privacy}","received_events_url":"https://api.github.com/users/BurntSushi/received_events","type":"User","site_admin":false},"created_at":"2018-08-23T11:46:52Z","updated_at":"2018-08-23T11:46:52Z","author_association":"OWNER","body":"@huonw !!!!! <3 :-)\r\n\r\nThis is smart! Thank you for this!"}}
{"actor":{"display_login":"BurntSushi"}}