microsoft/cpprestsdk

Inefficiency of http_request::extract_vector() method

オープン

#103 opened on 2016/03/24

 (2 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (1,670 件のフォーク)batch import
enhancementhelp wanted

Repository metrics

Stars
 (7,596 個のスター)
PR merge metrics
 (PR metrics pending)

説明

I'm looking at using the C++ REST SDK to implement a relatively simple but performance-critical REST server in our project. I've put together a PoC and it all looks good. But I've just hit upon what I think is a major performance issue.

When using the http_request::extract_vector() method, the Task completion routine is passed the retrieved vector by value. Our server will sometimes be posted a large content body (1MB or more). The pass-by-value means that this vector will be copied. This completely removes one of the major advantage of using C/C++ for this kind of work, i.e. the fact that if you know what you're doing, you can avoid the huge amount of copying that can be a bottleneck on platforms like NodeJS.

Am I missing something obvious here or will I have to implement a custom extract_vector_ptr() method myself?

コントリビューターガイド