Size: a a a

testing_in_python

2021 February 25

СС

Сказочный Сникерс... in testing_in_python
убрал сессию

io
with_threads
4.576418876647949
with_processes
1.6963634490966797
synchronously
9.86125659942627
with_async_pool
2.0167219638824463
with_async_warp_sync_requests
3.9910428524017334
источник

T

Tishka17 in testing_in_python
а чего тайминги упали?
источник

СС

Сказочный Сникерс... in testing_in_python
хост время от времени по разному нагружен
источник

T

Tishka17 in testing_in_python
ну блин
источник

СС

Сказочный Сникерс... in testing_in_python
ну типа нет, за 20 секунд это не заметно
источник

T

Tishka17 in testing_in_python
если у тебя на синк коде с 24 секунд до 10 упало время просто так, я не знаю как можно на это полагаться
источник

СС

Сказочный Сникерс... in testing_in_python
смотри динамику, она одинаковая +-
источник

T

Tishka17 in testing_in_python
Сказочный Сникерс
убрал сессию

io
with_threads
4.576418876647949
with_processes
1.6963634490966797
synchronously
9.86125659942627
with_async_pool
2.0167219638824463
with_async_warp_sync_requests
3.9910428524017334
покажи код без сессии
источник

СС

Сказочный Сникерс... in testing_in_python
@timeit
def with_async_wrap_sync_requests():
   loop = asyncio.get_event_loop()

   async def async_get():
       return requests.get(url)

   async_tasks = [loop.create_task(async_get()) for _ in range(count)]
   return loop.run_until_complete(asyncio.gather(*async_tasks))
источник

СС

Сказочный Сникерс... in testing_in_python
короче предлагаю закончить, процы все равно побеждают)
источник

T

Tishka17 in testing_in_python
io
with_threads 1.5259582996368408
with_processes 1.384183406829834
with_async_pool 1.515976905822754
with_async_wrap_sync_requests 9.314067840576172
synchronously 9.148640632629395


хз как ты тестишь
источник

T

Tishka17 in testing_in_python
источник

T

Tishka17 in testing_in_python
Сейчас на 500 запущу ещё
источник

СС

Сказочный Сникерс... in testing_in_python
вот решение всех проблем) ставим 56 процессов и потоки точно сольют)
источник

T

Tishka17 in testing_in_python
Сказочный Сникерс
короче предлагаю закончить, процы все равно побеждают)
Да. На многоядерной машине и при отсутствии необходимости между ними что-то передавать. Тут не поспоришь
источник

T

Tishka17 in testing_in_python
Сказочный Сникерс
вот решение всех проблем) ставим 56 процессов и потоки точно сольют)
Хах.
источник

T

Tishka17 in testing_in_python
Вообще проще масштабировать не мильтипроцессингом, а настройками деплоя
источник

ТЭ

Тачами Экстович... in testing_in_python
Сказочный Сникерс
@timeit
def with_async_wrap_sync_requests():
   loop = asyncio.get_event_loop()

   async def async_get():
       return requests.get(url)

   async_tasks = [loop.create_task(async_get()) for _ in range(count)]
   return loop.run_until_complete(asyncio.gather(*async_tasks))
Тут первый же запрос вешает эвент луп. Поэтому асинхронно так медленно работает
источник

ТЭ

Тачами Экстович... in testing_in_python
Попробуй вот это:
@timeit
def with_async_wrap_sync_requests_aiohttp():
   loop = asyncio.get_event_loop()

   import aiohttp
   async def get():
       async with aiohttp.ClientSession() as session:
           async with session.get(url) as response:
               print(response.status)

   async_tasks = [loop.create_task(get()) for _ in range(count)]
   return loop.run_until_complete(asyncio.gather(*async_tasks))
источник

ТЭ

Тачами Экстович... in testing_in_python
Принт заменит ток на response.status
источник