cengal.io.asock_io.versions.v_1.recv_buff_size_computer.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""" 19Module Docstring 20Docstrings: http://www.python.org/dev/peps/pep-0257/ 21""" 22 23__author__ = "ButenkoMS <gtalk@butenkoms.space>" 24__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>" 25__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ] 26__license__ = "Apache License, Version 2.0" 27__version__ = "4.4.1" 28__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>" 29__email__ = "gtalk@butenkoms.space" 30# __status__ = "Prototype" 31__status__ = "Development" 32# __status__ = "Production" 33 34 35class RecvBuffSizeComputer: 36 def __init__(self): 37 self.min_recv_buff_size = 1024 38 self.max_recv_buff_size = 1024 * 1024 * 10 39 self.recv_buff_size = self.min_recv_buff_size 40 self._last_recv_amount = 0 41 self._previous_recv_amount = 0 42 43 def calc_new_recv_buff_size(self, last_recv_amount): 44 biggest_recv_amount = 0 45 new_amount = 0 46 47 # moving resv amounts on list 48 self._previous_recv_amount = self._last_recv_amount 49 self._last_recv_amount = last_recv_amount 50 51 new_amount = self.recv_buff_size 52 if (self._last_recv_amount >= self.recv_buff_size) \ 53 and (self._previous_recv_amount >= self.recv_buff_size): 54 new_amount = self.recv_buff_size << 2 55 elif (self._last_recv_amount >= self.recv_buff_size) \ 56 and (self._previous_recv_amount < self.recv_buff_size): 57 new_amount = self.recv_buff_size << 1 58 elif (self._last_recv_amount < self.recv_buff_size) \ 59 and (self._previous_recv_amount >= self.recv_buff_size): 60 new_amount = self.recv_buff_size 61 elif (self._last_recv_amount < self.recv_buff_size) \ 62 and (self._previous_recv_amount < self.recv_buff_size): 63 # new_amount = max(self._last_recv_amounts_list) * 1.5 64 if self._last_recv_amount > self._previous_recv_amount: 65 biggest_recv_amount = self._last_recv_amount 66 else: 67 biggest_recv_amount = self._previous_recv_amount 68 new_amount = biggest_recv_amount + (biggest_recv_amount >> 1) 69 70 if new_amount < self.min_recv_buff_size: 71 self.recv_buff_size = self.min_recv_buff_size 72 elif new_amount > self.max_recv_buff_size: 73 self.recv_buff_size = self.max_recv_buff_size 74 else: 75 self.recv_buff_size = new_amount 76 77 return self.recv_buff_size
class
RecvBuffSizeComputer:
36class RecvBuffSizeComputer: 37 def __init__(self): 38 self.min_recv_buff_size = 1024 39 self.max_recv_buff_size = 1024 * 1024 * 10 40 self.recv_buff_size = self.min_recv_buff_size 41 self._last_recv_amount = 0 42 self._previous_recv_amount = 0 43 44 def calc_new_recv_buff_size(self, last_recv_amount): 45 biggest_recv_amount = 0 46 new_amount = 0 47 48 # moving resv amounts on list 49 self._previous_recv_amount = self._last_recv_amount 50 self._last_recv_amount = last_recv_amount 51 52 new_amount = self.recv_buff_size 53 if (self._last_recv_amount >= self.recv_buff_size) \ 54 and (self._previous_recv_amount >= self.recv_buff_size): 55 new_amount = self.recv_buff_size << 2 56 elif (self._last_recv_amount >= self.recv_buff_size) \ 57 and (self._previous_recv_amount < self.recv_buff_size): 58 new_amount = self.recv_buff_size << 1 59 elif (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 62 elif (self._last_recv_amount < self.recv_buff_size) \ 63 and (self._previous_recv_amount < self.recv_buff_size): 64 # new_amount = max(self._last_recv_amounts_list) * 1.5 65 if self._last_recv_amount > self._previous_recv_amount: 66 biggest_recv_amount = self._last_recv_amount 67 else: 68 biggest_recv_amount = self._previous_recv_amount 69 new_amount = biggest_recv_amount + (biggest_recv_amount >> 1) 70 71 if new_amount < self.min_recv_buff_size: 72 self.recv_buff_size = self.min_recv_buff_size 73 elif new_amount > self.max_recv_buff_size: 74 self.recv_buff_size = self.max_recv_buff_size 75 else: 76 self.recv_buff_size = new_amount 77 78 return self.recv_buff_size
def
calc_new_recv_buff_size(self, last_recv_amount):
44 def calc_new_recv_buff_size(self, last_recv_amount): 45 biggest_recv_amount = 0 46 new_amount = 0 47 48 # moving resv amounts on list 49 self._previous_recv_amount = self._last_recv_amount 50 self._last_recv_amount = last_recv_amount 51 52 new_amount = self.recv_buff_size 53 if (self._last_recv_amount >= self.recv_buff_size) \ 54 and (self._previous_recv_amount >= self.recv_buff_size): 55 new_amount = self.recv_buff_size << 2 56 elif (self._last_recv_amount >= self.recv_buff_size) \ 57 and (self._previous_recv_amount < self.recv_buff_size): 58 new_amount = self.recv_buff_size << 1 59 elif (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 62 elif (self._last_recv_amount < self.recv_buff_size) \ 63 and (self._previous_recv_amount < self.recv_buff_size): 64 # new_amount = max(self._last_recv_amounts_list) * 1.5 65 if self._last_recv_amount > self._previous_recv_amount: 66 biggest_recv_amount = self._last_recv_amount 67 else: 68 biggest_recv_amount = self._previous_recv_amount 69 new_amount = biggest_recv_amount + (biggest_recv_amount >> 1) 70 71 if new_amount < self.min_recv_buff_size: 72 self.recv_buff_size = self.min_recv_buff_size 73 elif new_amount > self.max_recv_buff_size: 74 self.recv_buff_size = self.max_recv_buff_size 75 else: 76 self.recv_buff_size = new_amount 77 78 return self.recv_buff_size