aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cowboy.erl2
-rw-r--r--src/cowboy_dynamic_buffer.hrl2
-rw-r--r--src/cowboy_http.erl2
-rw-r--r--src/cowboy_http2.erl4
-rw-r--r--src/cowboy_websocket.erl4
5 files changed, 7 insertions, 7 deletions
diff --git a/src/cowboy.erl b/src/cowboy.erl
index d46691f..1f585d0 100644
--- a/src/cowboy.erl
+++ b/src/cowboy.erl
@@ -166,7 +166,7 @@ ensure_dynamic_buffer(TransOpts, #{dynamic_buffer := DynamicBuffer}) ->
ensure_dynamic_buffer(TransOpts=#{socket_opts := SocketOpts}, _) ->
case proplists:get_value(buffer, SocketOpts, undefined) of
undefined ->
- {TransOpts#{socket_opts => [{buffer, 1024}|SocketOpts]}, {1024, 131072}};
+ {TransOpts#{socket_opts => [{buffer, 128}|SocketOpts]}, {128, 131072}};
_ ->
{TransOpts, false}
end.
diff --git a/src/cowboy_dynamic_buffer.hrl b/src/cowboy_dynamic_buffer.hrl
index 4d05e50..f6a86f0 100644
--- a/src/cowboy_dynamic_buffer.hrl
+++ b/src/cowboy_dynamic_buffer.hrl
@@ -65,7 +65,7 @@ maybe_resize_buffer(State=#state{transport=Transport, socket=Socket,
opts=#{dynamic_buffer := {LowDynamicBuffer, HighDynamicBuffer}},
dynamic_buffer_size=BufferSize0, dynamic_buffer_moving_average=MovingAvg0}, Data) ->
DataLen = byte_size(Data),
- MovingAvg = (MovingAvg0 + DataLen) div 2,
+ MovingAvg = (MovingAvg0 * 7 + DataLen) / 8,
if
BufferSize0 < HighDynamicBuffer andalso MovingAvg > BufferSize0 * 0.9 ->
BufferSize = min(BufferSize0 * 2, HighDynamicBuffer),
diff --git a/src/cowboy_http.erl b/src/cowboy_http.erl
index 10eb519..c3f6511 100644
--- a/src/cowboy_http.erl
+++ b/src/cowboy_http.erl
@@ -193,7 +193,7 @@ init(Parent, Ref, Socket, Transport, ProxyHeader, Opts) ->
transport=Transport, proxy_header=ProxyHeader, opts=Opts,
peer=Peer, sock=Sock, cert=Cert,
dynamic_buffer_size=init_dynamic_buffer_size(Opts),
- dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0),
+ dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0.0),
last_streamid=maps:get(max_keepalive, Opts, 1000)},
safe_setopts_active(State),
before_loop(set_timeout(State, request_timeout)).
diff --git a/src/cowboy_http2.erl b/src/cowboy_http2.erl
index f4cfa39..3c531cc 100644
--- a/src/cowboy_http2.erl
+++ b/src/cowboy_http2.erl
@@ -188,7 +188,7 @@ init(Parent, Ref, Socket, Transport, ProxyHeader, Opts, Peer, Sock, Cert, Buffer
transport=Transport, proxy_header=ProxyHeader,
opts=Opts, peer=Peer, sock=Sock, cert=Cert,
dynamic_buffer_size=DynamicBuffer,
- dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0),
+ dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0.0),
http2_status=sequence, http2_machine=HTTP2Machine}), 0),
safe_setopts_active(State),
case Buffer of
@@ -238,7 +238,7 @@ init(Parent, Ref, Socket, Transport, ProxyHeader, Opts, Peer, Sock, Cert, Buffer
transport=Transport, proxy_header=ProxyHeader,
opts=Opts, peer=Peer, sock=Sock, cert=Cert,
dynamic_buffer_size=DynamicBuffer,
- dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0),
+ dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0.0),
http2_status=upgrade, http2_machine=HTTP2Machine},
State1 = headers_frame(State0#state{
http2_machine=HTTP2Machine}, StreamID, Req),
diff --git a/src/cowboy_websocket.erl b/src/cowboy_websocket.erl
index dd57730..37ac49c 100644
--- a/src/cowboy_websocket.erl
+++ b/src/cowboy_websocket.erl
@@ -103,7 +103,7 @@
%% Dynamic buffer moving average and current buffer size.
dynamic_buffer_size = false :: pos_integer() | false,
- dynamic_buffer_moving_average = 0 :: non_neg_integer(),
+ dynamic_buffer_moving_average = 0.0 :: non_neg_integer(),
hibernate = false :: boolean(),
frag_state = undefined :: cow_ws:frag_state(),
@@ -320,7 +320,7 @@ takeover(Parent, Ref, Socket, Transport, Opts, Buffer,
key=undefined, messages=Messages,
%% Dynamic buffer only applies to HTTP/1.1 Websocket.
dynamic_buffer_size=init_dynamic_buffer_size(Opts),
- dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0)}, 0),
+ dynamic_buffer_moving_average=maps:get(dynamic_buffer_initial_average, Opts, 0.0)}, 0),
%% We call parse_header/3 immediately because there might be
%% some data in the buffer that was sent along with the handshake.
%% While it is not allowed by the protocol to send frames immediately,