{"action":"created","issue":{"url":"https://api.github.com/repos/bazil/fuse/issues/35","repository_url":"https://api.github.com/repos/bazil/fuse","labels_url":"https://api.github.com/repos/bazil/fuse/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/bazil/fuse/issues/35/comments","events_url":"https://api.github.com/repos/bazil/fuse/issues/35/events","html_url":"https://github.com/bazil/fuse/issues/35","id":40380220,"number":35,"title":"use vmsplice(2) to read/write multiple requests at a time [depends:#33]","user":{"login":"tv42","id":419909,"avatar_url":"https://avatars.githubusercontent.com/u/419909?v=3","gravatar_id":"","url":"https://api.github.com/users/tv42","html_url":"https://github.com/tv42","followers_url":"https://api.github.com/users/tv42/followers","following_url":"https://api.github.com/users/tv42/following{/other_user}","gists_url":"https://api.github.com/users/tv42/gists{/gist_id}","starred_url":"https://api.github.com/users/tv42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tv42/subscriptions","organizations_url":"https://api.github.com/users/tv42/orgs","repos_url":"https://api.github.com/users/tv42/repos","events_url":"https://api.github.com/users/tv42/events{/privacy}","received_events_url":"https://api.github.com/users/tv42/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bazil/fuse/labels/not-ready","name":"not-ready","color":"bfdadc"},{"url":"https://api.github.com/repos/bazil/fuse/labels/performance","name":"performance","color":"c7def8"},{"url":"https://api.github.com/repos/bazil/fuse/labels/platform:linux","name":"platform:linux","color":"d4c5f9"},{"url":"https://api.github.com/repos/bazil/fuse/labels/type:enhancement","name":"type:enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2014-08-15T20:11:57Z","updated_at":"2016-06-30T22:18:00Z","closed_at":null,"body":"depends: #33 "},"comment":{"url":"https://api.github.com/repos/bazil/fuse/issues/comments/229804828","html_url":"https://github.com/bazil/fuse/issues/35#issuecomment-229804828","issue_url":"https://api.github.com/repos/bazil/fuse/issues/35","id":229804828,"user":{"login":"tv42","id":419909,"avatar_url":"https://avatars.githubusercontent.com/u/419909?v=3","gravatar_id":"","url":"https://api.github.com/users/tv42","html_url":"https://github.com/tv42","followers_url":"https://api.github.com/users/tv42/followers","following_url":"https://api.github.com/users/tv42/following{/other_user}","gists_url":"https://api.github.com/users/tv42/gists{/gist_id}","starred_url":"https://api.github.com/users/tv42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tv42/subscriptions","organizations_url":"https://api.github.com/users/tv42/orgs","repos_url":"https://api.github.com/users/tv42/repos","events_url":"https://api.github.com/users/tv42/events{/privacy}","received_events_url":"https://api.github.com/users/tv42/received_events","type":"User","site_admin":false},"created_at":"2016-06-30T22:18:00Z","updated_at":"2016-06-30T22:18:00Z","body":"Oh, wow. After all this time, I come to the realization that there was no such thing as length-prefixed multiple requests in one memory area. I wonder where I even got that idea? Maybe from reading l-k back in the day and seeing a patch that never got accepted. Dang.\r\n\r\n`vmsplice` trickery can still help in decreasing copies, but it's not very interesting for avoiding gc churn. I'm bummed now. Well, dropping `maxWrite` down for Linux helped there a ton, if that still needs more, next up we'll use \"avoid `sync.Pool` for 2\" trick from #120 and I think it was @jacobsa who suggested copying small requests out to avoid pinning a whole large buffer. Also `BATCH_FORGET` will help with one common request storm.\r\n\r\nRight now a pretty simple lots of small requests benchmark says one request roundtrip takes half a millisecond and allocates <4kB (profiling blames `content.WithCancel`).\r\n\r\n```\r\nBenchmarkCreate-12\t  20000\t    647504 ns/op\t    3591 B/op\t      44 allocs/op\r\n```\r\n\r\nIf you have benchmarks you care about, please try to share them! Feel free to create separate issues for that, to avoid drowning this one in those."}}
{"actor":{"display_login":"tv42"}}