memcached++ - C++ API to memcached
Brad Fitzpatrick
brad@danga.com
Wed, 9 Jun 2004 12:19:05 -0700 (PDT)
> > Unfortunately when testing memcached with this API, we found that
> > for our task (caching havy sql requests to database) it almost 5
> > times slower than dumb in-process cache.
>
> And I can tell you why.
>
> If you change this:
> _sock_write(sock, buf, buf_len);
> _sock_write(sock, (char*)"\r\n", 2);
>
> to that:
> _sock_write(sock, buf, buf_len); // buf already contains \r\n
>
> it will work in at least 2-3 times faster.
> I.e. writing to the socket with only ONE call should speed up it a lot.
Also, set the TCP_NODELAY sockopt and only write full buffers, as Anton
said.
In any case, in-process caching may be faster, until you run out of memory
in a single process, or you find your application is running on 80
machines instead of 1.
- Brad