Задать вопрос
S1riyS
@S1riyS

Почему общее время выполнения запросов по мере увеличения количества запросов растет слишком быстро?

В своем проекте я использую Wandbox API, отправляя запросы асинхронно.

Код:
import time
import aiohttp
import asyncio

URL = 'https://wandbox.org/api/compile.json'
HEADERS = {'Content-Type': 'application/json'}

code = '''
class Compiler{
    public static void main(String[] args){
        System.out.println("This works!");
    }
}
'''

data = {
    'code': code,
    'compiler': 'openjdk-head',
    'stdin': ''
}


async def post(session):
    async with session.post(url=URL, headers=HEADERS, json=data) as wandbox_response:
        result = await wandbox_response.json()
        return result


async def gather_tasks(N):
    async with aiohttp.ClientSession() as session:
        tasks = []

        for i in range(N):
            tasks.append(asyncio.ensure_future(post(session=session)))

        result = await asyncio.gather(*tasks)

    return result


for number_of_tasks in range(1, 10):
    start_time = time.time()

    loop = asyncio.get_event_loop()  # Creating async loop
    results = loop.run_until_complete(gather_tasks(number_of_tasks))

    print(number_of_tasks, time.time() - start_time)


Если его запустить, то в консоли будет выведено:
61c850d594351993139035.png

Если изменить компилятор например на python и отправлять соответствующий код:
code = '''
print('This works!')
'''

data = {
    'code': code,
    'compiler': 'cpython-head',
    'stdin': ''
}

То в консоль будет выводиться:
61c8518c5119f787279323.png

Почему так происходит и как это исправить?
  • Вопрос задан
  • 338 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы