cengal.io.recv_buff_size_computer.versions.v_0.recv_buff_size_computer__python

Module Docstring Docstrings: http://www.python.org/dev/peps/pep-0257/

 1#!/usr/bin/env python
 2# coding=utf-8
 3
 4# Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>
 5# 
 6# Licensed under the Apache License, Version 2.0 (the "License");
 7# you may not use this file except in compliance with the License.
 8# You may obtain a copy of the License at
 9# 
10#     http://www.apache.org/licenses/LICENSE-2.0
11# 
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18
19"""
20Module Docstring
21Docstrings: http://www.python.org/dev/peps/pep-0257/
22"""
23
24
25__author__ = "ButenkoMS <gtalk@butenkoms.space>"
26__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>"
27__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ]
28__license__ = "Apache License, Version 2.0"
29__version__ = "4.4.1"
30__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>"
31__email__ = "gtalk@butenkoms.space"
32# __status__ = "Prototype"
33__status__ = "Development"
34# __status__ = "Production"
35
36
37
38
39__author__ = 'ButenkoMS <gtalk@butenkoms.space>'
40
41
42class RecvBuffSizeComputer:
43    def __init__(self):
44        self._min_recv_buff_size = 1024
45        self._max_recv_buff_size = 1024 * 1024 * 10
46        self.recv_buff_size = self._min_recv_buff_size
47        self._last_recv_amount = 0
48        self._previous_recv_amount = 0
49
50    def calc_new_recv_buff_size(self, last_recv_amount):
51        biggest_recv_amount = 0
52        new_amount = 0
53
54        # moving resv amounts on list
55        self._previous_recv_amount = self._last_recv_amount
56        self._last_recv_amount = last_recv_amount
57
58        new_amount = self.recv_buff_size
59        if (self._last_recv_amount >= self.recv_buff_size) \
60                and (self._previous_recv_amount >= self.recv_buff_size):
61            new_amount = self.recv_buff_size << 2
62        elif (self._last_recv_amount >= self.recv_buff_size) \
63                and (self._previous_recv_amount < self.recv_buff_size):
64            new_amount = self.recv_buff_size << 1
65        elif (self._last_recv_amount < self.recv_buff_size) \
66                and (self._previous_recv_amount >= self.recv_buff_size):
67            new_amount = self.recv_buff_size
68        elif (self._last_recv_amount < self.recv_buff_size) \
69                and (self._previous_recv_amount < self.recv_buff_size):
70            # new_amount = max(self._last_recv_amounts_list) * 1.5
71            if self._last_recv_amount > self._previous_recv_amount:
72                biggest_recv_amount = self._last_recv_amount
73            else:
74                biggest_recv_amount = self._previous_recv_amount
75            new_amount = biggest_recv_amount + (biggest_recv_amount >> 1)
76
77        if new_amount < self._min_recv_buff_size:
78            self.recv_buff_size = self._min_recv_buff_size
79        elif new_amount > self._max_recv_buff_size:
80            self.recv_buff_size = self._max_recv_buff_size
81        else:
82            self.recv_buff_size = new_amount
83
84        return self.recv_buff_size
class RecvBuffSizeComputer:
43class RecvBuffSizeComputer:
44    def __init__(self):
45        self._min_recv_buff_size = 1024
46        self._max_recv_buff_size = 1024 * 1024 * 10
47        self.recv_buff_size = self._min_recv_buff_size
48        self._last_recv_amount = 0
49        self._previous_recv_amount = 0
50
51    def calc_new_recv_buff_size(self, last_recv_amount):
52        biggest_recv_amount = 0
53        new_amount = 0
54
55        # moving resv amounts on list
56        self._previous_recv_amount = self._last_recv_amount
57        self._last_recv_amount = last_recv_amount
58
59        new_amount = self.recv_buff_size
60        if (self._last_recv_amount >= self.recv_buff_size) \
61                and (self._previous_recv_amount >= self.recv_buff_size):
62            new_amount = self.recv_buff_size << 2
63        elif (self._last_recv_amount >= self.recv_buff_size) \
64                and (self._previous_recv_amount < self.recv_buff_size):
65            new_amount = self.recv_buff_size << 1
66        elif (self._last_recv_amount < self.recv_buff_size) \
67                and (self._previous_recv_amount >= self.recv_buff_size):
68            new_amount = self.recv_buff_size
69        elif (self._last_recv_amount < self.recv_buff_size) \
70                and (self._previous_recv_amount < self.recv_buff_size):
71            # new_amount = max(self._last_recv_amounts_list) * 1.5
72            if self._last_recv_amount > self._previous_recv_amount:
73                biggest_recv_amount = self._last_recv_amount
74            else:
75                biggest_recv_amount = self._previous_recv_amount
76            new_amount = biggest_recv_amount + (biggest_recv_amount >> 1)
77
78        if new_amount < self._min_recv_buff_size:
79            self.recv_buff_size = self._min_recv_buff_size
80        elif new_amount > self._max_recv_buff_size:
81            self.recv_buff_size = self._max_recv_buff_size
82        else:
83            self.recv_buff_size = new_amount
84
85        return self.recv_buff_size
recv_buff_size
def calc_new_recv_buff_size(self, last_recv_amount):
51    def calc_new_recv_buff_size(self, last_recv_amount):
52        biggest_recv_amount = 0
53        new_amount = 0
54
55        # moving resv amounts on list
56        self._previous_recv_amount = self._last_recv_amount
57        self._last_recv_amount = last_recv_amount
58
59        new_amount = self.recv_buff_size
60        if (self._last_recv_amount >= self.recv_buff_size) \
61                and (self._previous_recv_amount >= self.recv_buff_size):
62            new_amount = self.recv_buff_size << 2
63        elif (self._last_recv_amount >= self.recv_buff_size) \
64                and (self._previous_recv_amount < self.recv_buff_size):
65            new_amount = self.recv_buff_size << 1
66        elif (self._last_recv_amount < self.recv_buff_size) \
67                and (self._previous_recv_amount >= self.recv_buff_size):
68            new_amount = self.recv_buff_size
69        elif (self._last_recv_amount < self.recv_buff_size) \
70                and (self._previous_recv_amount < self.recv_buff_size):
71            # new_amount = max(self._last_recv_amounts_list) * 1.5
72            if self._last_recv_amount > self._previous_recv_amount:
73                biggest_recv_amount = self._last_recv_amount
74            else:
75                biggest_recv_amount = self._previous_recv_amount
76            new_amount = biggest_recv_amount + (biggest_recv_amount >> 1)
77
78        if new_amount < self._min_recv_buff_size:
79            self.recv_buff_size = self._min_recv_buff_size
80        elif new_amount > self._max_recv_buff_size:
81            self.recv_buff_size = self._max_recv_buff_size
82        else:
83            self.recv_buff_size = new_amount
84
85        return self.recv_buff_size