mirror of
https://github.com/curl/curl.git
synced 2026-08-25 01:33:31 +03:00
curl_easy_init: use less mallocs
By introducing an internal alternative to curl_multi_init() that accepts parameters to set the hash sizes, easy handles will now use tiny socket and connection hash tables since it will only ever add a single easy handle to that multi handle. This decreased the number mallocs in test 40 (which is a rather simple and typical easy interface use case) from 1142 to 138. The maximum amount of memory allocated used went down from 118969 to 78805.
This commit is contained in:
parent
c4067a5678
commit
6420672879
5 changed files with 28 additions and 12 deletions
|
|
@ -7,7 +7,7 @@
|
|||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
|
|
@ -22,6 +22,8 @@
|
|||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes for library-wide functions provided by multi.c
|
||||
*/
|
||||
|
|
@ -30,6 +32,10 @@ void Curl_expire(struct SessionHandle *data, long milli);
|
|||
bool Curl_multi_pipeline_enabled(const struct Curl_multi* multi);
|
||||
void Curl_multi_handlePipeBreak(struct SessionHandle *data);
|
||||
|
||||
/* Internal version of curl_multi_init() accepts size parameters for the
|
||||
socket and connection hashes */
|
||||
struct Curl_multi *Curl_multi_handle(int hashsize, int chashsize);
|
||||
|
||||
/* the write bits start at bit 16 for the *getsock() bitmap */
|
||||
#define GETSOCK_WRITEBITSTART 16
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue