mirror of
https://github.com/boostorg/redis.git
synced 2026-01-19 04:42:09 +00:00
Data rotation in the read buffer creates latency, we know it is preset but so far its magnitude was unknown. This PR adds it as a new field to the usage struct. For example, the test_conn_echo_stress outputs now Commands sent: 780,002 Bytes sent: 32,670,085 Responses received: 780,001 Pushes received: 750,001 Bytes received (response): 3,210,147 Bytes received (push): 32,250,036 Bytes rotated: 3,109,190,184 In total approximately 34Mb are received but 3Gb are rotated.
26 lines
721 B
C++
26 lines
721 B
C++
/* Copyright (c) 2018-2025 Marcelo Zimbres Silva (mzimbres@gmail.com)
|
|
*
|
|
* Distributed under the Boost Software License, Version 1.0. (See
|
|
* accompanying file LICENSE.txt)
|
|
*/
|
|
|
|
#include "sansio_utils.hpp"
|
|
|
|
#include <boost/redis/detail/multiplexer.hpp>
|
|
#include <boost/core/ignore_unused.hpp>
|
|
|
|
namespace boost::redis::detail {
|
|
|
|
void read(multiplexer& mpx, std::string_view data)
|
|
{
|
|
auto const ec = mpx.prepare_read();
|
|
ignore_unused(ec);
|
|
BOOST_ASSERT(ec == system::error_code{});
|
|
auto const buffer = mpx.get_prepared_read_buffer();
|
|
BOOST_ASSERT(buffer.size() >= data.size());
|
|
std::copy(data.cbegin(), data.cend(), buffer.begin());
|
|
mpx.commit_read(data.size());
|
|
}
|
|
|
|
} // namespace boost::redis::detail
|