{"action":"created","issue":{"url":"https://api.github.com/repos/joyent/node/issues/14591","labels_url":"https://api.github.com/repos/joyent/node/issues/14591/labels{/name}","comments_url":"https://api.github.com/repos/joyent/node/issues/14591/comments","events_url":"https://api.github.com/repos/joyent/node/issues/14591/events","html_url":"https://github.com/joyent/node/issues/14591","id":67588667,"number":14591,"title":"UDP socket sendMulti() and \"multiMessages\" event features","user":{"login":"guymguym","id":1091422,"avatar_url":"https://avatars.githubusercontent.com/u/1091422?v=3","gravatar_id":"","url":"https://api.github.com/users/guymguym","html_url":"https://github.com/guymguym","followers_url":"https://api.github.com/users/guymguym/followers","following_url":"https://api.github.com/users/guymguym/following{/other_user}","gists_url":"https://api.github.com/users/guymguym/gists{/gist_id}","starred_url":"https://api.github.com/users/guymguym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guymguym/subscriptions","organizations_url":"https://api.github.com/users/guymguym/orgs","repos_url":"https://api.github.com/users/guymguym/repos","events_url":"https://api.github.com/users/guymguym/events{/privacy}","received_events_url":"https://api.github.com/users/guymguym/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/joyent/node/labels/dgram","name":"dgram","color":"e10c02"},{"url":"https://api.github.com/repos/joyent/node/labels/feature-request","name":"feature-request","color":"0b02e1"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-10T12:54:27Z","updated_at":"2015-04-10T23:19:43Z","closed_at":null,"body":"Hi\r\n\r\nThis is following recvmmsg and sendmmsg from linux that batch the handling of multiple datagrams in a single user call. For windows I saw [Windows Registered I/O API (RIO)](http://stackoverflow.com/questions/20119419/how-can-i-reduce-system-call-overhead-when-sending-a-large-number-of-udp-packets).\r\n\r\nIt would be great if node can provide a similar interface, since in many cases with UDP the small MTU of WAN networks requires splitting to multiple tiny send calls, which add a lot of cpu overhead.\r\n\r\nI'm not sure in which layer there is more overhead - system calls, or v8 buffer preparations and garbage collection, but it just seems like a natural performance addon to node's udp.\r\n\r\nThanks!"},"comment":{"url":"https://api.github.com/repos/joyent/node/issues/comments/91714271","html_url":"https://github.com/joyent/node/issues/14591#issuecomment-91714271","issue_url":"https://api.github.com/repos/joyent/node/issues/14591","id":91714271,"user":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"created_at":"2015-04-10T23:19:43Z","updated_at":"2015-04-10T23:19:43Z","body":"That seems like an interesting topic for discussion, however I think it would get more traction with actual data from benchmarks. You might also want to start the discussion in [libuv](https://github.com/libuv/libuv), where it seems @bnoordhuis [had experimented with recvmmsg in the past and had mixed results, albeit in another context](https://github.com/joyent/libuv/issues/414#issuecomment-14023456). The link point to joyent/libuv, but please note that the libuv project moved to libuv/libuv."}}