{"action":"created","issue":{"url":"https://api.github.com/repos/thekvs/cpp-serializers/issues/1","labels_url":"https://api.github.com/repos/thekvs/cpp-serializers/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/thekvs/cpp-serializers/issues/1/comments","events_url":"https://api.github.com/repos/thekvs/cpp-serializers/issues/1/events","html_url":"https://github.com/thekvs/cpp-serializers/pull/1","id":68592775,"number":1,"title":"Add Cap'n Proto to benchmark.","user":{"login":"kentonv","id":4001805,"avatar_url":"https://avatars.githubusercontent.com/u/4001805?v=3","gravatar_id":"","url":"https://api.github.com/users/kentonv","html_url":"https://github.com/kentonv","followers_url":"https://api.github.com/users/kentonv/followers","following_url":"https://api.github.com/users/kentonv/following{/other_user}","gists_url":"https://api.github.com/users/kentonv/gists{/gist_id}","starred_url":"https://api.github.com/users/kentonv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kentonv/subscriptions","organizations_url":"https://api.github.com/users/kentonv/orgs","repos_url":"https://api.github.com/users/kentonv/repos","events_url":"https://api.github.com/users/kentonv/events{/privacy}","received_events_url":"https://api.github.com/users/kentonv/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-04-15T06:44:42Z","updated_at":"2015-04-18T02:29:35Z","closed_at":"2015-04-16T05:23:02Z","pull_request":{"url":"https://api.github.com/repos/thekvs/cpp-serializers/pulls/1","html_url":"https://github.com/thekvs/cpp-serializers/pull/1","diff_url":"https://github.com/thekvs/cpp-serializers/pull/1.diff","patch_url":"https://github.com/thekvs/cpp-serializers/pull/1.patch"},"body":"Results:\r\n\r\n$ ./test 100000\r\nperforming 100000 iterations\r\n\r\nthrift-binary: version = 0.9.1\r\nthrift-binary: size = 17017 bytes\r\nthrift-binary: time = 9253 milliseconds\r\n\r\nthrift-compact: version = 0.9.1\r\nthrift-compact: size = 11597 bytes\r\nthrift-compact: time = 12249 milliseconds\r\n\r\nprotobuf: version = 2006000\r\nprotobuf: size = 12571 bytes\r\nprotobuf: time = 9349 milliseconds\r\n\r\ncapnproto: version = 5002\r\ncapnproto: size = 17768 bytes\r\ncapnproto: time = 5 milliseconds\r\n\r\nboost: version = 105600\r\nboost: size = 17470 bytes\r\nboost: time = 8942 milliseconds\r\n\r\nmsgpack: version = 0.5.9\r\nmsgpack: size = 11902 bytes\r\nmsgpack: time = 6669 milliseconds\r\n\r\ncereal: size = 17416 bytes\r\ncereal: time = 3608 milliseconds\r\n\r\navro: size = 12288 bytes\r\navro: time = 8236 milliseconds"},"comment":{"url":"https://api.github.com/repos/thekvs/cpp-serializers/issues/comments/94118055","html_url":"https://github.com/thekvs/cpp-serializers/pull/1#issuecomment-94118055","issue_url":"https://api.github.com/repos/thekvs/cpp-serializers/issues/1","id":94118055,"user":{"login":"kentonv","id":4001805,"avatar_url":"https://avatars.githubusercontent.com/u/4001805?v=3","gravatar_id":"","url":"https://api.github.com/users/kentonv","html_url":"https://github.com/kentonv","followers_url":"https://api.github.com/users/kentonv/followers","following_url":"https://api.github.com/users/kentonv/following{/other_user}","gists_url":"https://api.github.com/users/kentonv/gists{/gist_id}","starred_url":"https://api.github.com/users/kentonv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kentonv/subscriptions","organizations_url":"https://api.github.com/users/kentonv/orgs","repos_url":"https://api.github.com/users/kentonv/repos","events_url":"https://api.github.com/users/kentonv/events{/privacy}","received_events_url":"https://api.github.com/users/kentonv/received_events","type":"User","site_admin":false},"created_at":"2015-04-18T02:29:35Z","updated_at":"2015-04-18T02:29:35Z","body":"I recommend trying to think of semi-realistic use cases that are easy to code, and then writing them as end-to-end systems.\r\n\r\nFor example, in my own benchmarks I implemented something called \"Catrank\". The idea is that you have a search engine where someone has done a search, a provisional set of search results has been returned by the index (with scores), and then the program's goal is to modify those scores by promoting the ones with \"cat\" in the snippet and demoting the ones mentioning \"dog\" (by multiplying their scores and then re-sorting). The benchmark generates dummy search results that randomly use the words \"cat\" and \"dog\", then runs them through the fake \"Catrank\" system.\r\n\r\nhttps://github.com/sandstorm-io/capnproto/blob/master/c++/src/benchmark/catrank.capnp\r\nhttps://github.com/sandstorm-io/capnproto/blob/master/c++/src/benchmark/capnproto-catrank.c++\r\n\r\nAnyway, that's just one idea, but the point is, even though it's not a real use case, it's an example of something you could almost imagine someone doing in real life. :)\r\n\r\nFWIW, feel free to take whatever you want from my benchmark suite. (I only cover Cap'n Proto and Protobuf. It would be cool to cover others as well. That said, I don't have a lot of confidence that this benchmark suite is meaningful either, since it is still made-up test cases.)"}}