{"action":"created","issue":{"url":"https://api.github.com/repos/lexicalunit/nanodbc/issues/201","repository_url":"https://api.github.com/repos/lexicalunit/nanodbc","labels_url":"https://api.github.com/repos/lexicalunit/nanodbc/issues/201/labels{/name}","comments_url":"https://api.github.com/repos/lexicalunit/nanodbc/issues/201/comments","events_url":"https://api.github.com/repos/lexicalunit/nanodbc/issues/201/events","html_url":"https://github.com/lexicalunit/nanodbc/pull/201","id":170014335,"node_id":"MDExOlB1bGxSZXF1ZXN0ODA1MTM5NzA=","number":201,"title":"WIP: Converter templates for more efficient processing","user":{"login":"mcg1969","id":2797735,"node_id":"MDQ6VXNlcjI3OTc3MzU=","avatar_url":"https://avatars1.githubusercontent.com/u/2797735?v=4","gravatar_id":"","url":"https://api.github.com/users/mcg1969","html_url":"https://github.com/mcg1969","followers_url":"https://api.github.com/users/mcg1969/followers","following_url":"https://api.github.com/users/mcg1969/following{/other_user}","gists_url":"https://api.github.com/users/mcg1969/gists{/gist_id}","starred_url":"https://api.github.com/users/mcg1969/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcg1969/subscriptions","organizations_url":"https://api.github.com/users/mcg1969/orgs","repos_url":"https://api.github.com/users/mcg1969/repos","events_url":"https://api.github.com/users/mcg1969/events{/privacy}","received_events_url":"https://api.github.com/users/mcg1969/received_events","type":"User","site_admin":false},"labels":[{"id":31787564,"node_id":"MDU6TGFiZWwzMTc4NzU2NA==","url":"https://api.github.com/repos/lexicalunit/nanodbc/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2016-08-08T20:13:46Z","updated_at":"2018-08-22T19:39:02Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/lexicalunit/nanodbc/pulls/201","html_url":"https://github.com/lexicalunit/nanodbc/pull/201","diff_url":"https://github.com/lexicalunit/nanodbc/pull/201.diff","patch_url":"https://github.com/lexicalunit/nanodbc/pull/201.patch"},"body":"I'm really digging Visual 2015's profiler, which has made it easier for me to see the performance bottlenecks in my code. Even after my latest converter PR, one of the performance bottlenecks remained in the converter code. What is interesting is that this bottleneck didn't go away even when I adjusted my code so that no conversion is necessary. Another bottleneck turned out to be a large  number of unnecessary allocations as well, particularly when going between C-style and C++-style strings.\n\nThe set of `convert` functions provided here attempt to address this problem. Using template specialization we can use move semantics when that is appropriate, straight copying when conversion is unnecessary, and full conversion only when that is warranted. Because the decisions are made at compile time this should be a net win.\n\nThe result is not only a performance improvement in my specific case, but what I believe to be simpler code in many places throughout.\n\nI've marked this WIP simply because I haven't yet investigated the interaction with existing tests\n"},"comment":{"url":"https://api.github.com/repos/lexicalunit/nanodbc/issues/comments/415154269","html_url":"https://github.com/lexicalunit/nanodbc/pull/201#issuecomment-415154269","issue_url":"https://api.github.com/repos/lexicalunit/nanodbc/issues/201","id":415154269,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNTE1NDI2OQ==","user":{"login":"mloskot","id":80741,"node_id":"MDQ6VXNlcjgwNzQx","avatar_url":"https://avatars2.githubusercontent.com/u/80741?v=4","gravatar_id":"","url":"https://api.github.com/users/mloskot","html_url":"https://github.com/mloskot","followers_url":"https://api.github.com/users/mloskot/followers","following_url":"https://api.github.com/users/mloskot/following{/other_user}","gists_url":"https://api.github.com/users/mloskot/gists{/gist_id}","starred_url":"https://api.github.com/users/mloskot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mloskot/subscriptions","organizations_url":"https://api.github.com/users/mloskot/orgs","repos_url":"https://api.github.com/users/mloskot/repos","events_url":"https://api.github.com/users/mloskot/events{/privacy}","received_events_url":"https://api.github.com/users/mloskot/received_events","type":"User","site_admin":false},"created_at":"2018-08-22T19:39:02Z","updated_at":"2018-08-22T19:39:02Z","author_association":"CONTRIBUTOR","body":"@mcg1969 Thank you for contributing this initial PR! Your improvements are now part of nanodbc."}}
{"actor":{"display_login":"mloskot"}}