Ошибка с асинхронным измерением производительности в Питоне
import time
import asyncio
import aiohttp
# Настраиваемые параметры
db_request_duration = 0.2 # Длительность запроса в БД
response_processing_duration = 0.1 # Время обработки запроса и формирование ответа
async_request_url = 'https://httpbin.org/delay/0.1' # URL для асинхронного запроса
# === Синхронное взаимодействие ===
def sync_request():
"""Моделирование синхронного запроса."""
time.sleep(db_request_duration) # Моделирование запроса в БД
time.sleep(response_processing_duration) # Моделирование обработки запроса и ответа
def measure_sync_performance(duration):
"""Измерение производительности синхронного взаимодействия."""
end_time = time.time() + duration
request_count = 0
while time.time() < end_time:
sync_request()
request_count += 1
return request_count
# === Асинхронное взаимодействие ===
async def async_request(session):
"""Моделирование асинхронного запроса."""
async with session.get(async_request_url) as response:
await response.text()
async def measure_async_performance(duration):
"""Измерение производительности асинхронного взаимодействия."""
print("Начало асинхронного измерения производительности...")
end_time = time.time() + duration
request_count = 0
async with aiohttp.ClientSession() as session:
tasks = []
while time.time() < end_time:
tasks.append(asyncio.create_task(async_request(session)))
request_count += 1
await asyncio.gather(*tasks)
print("Конец асинхронного измерения производительности...")
return request_count
# === Точка входа ===
if __name__ == "__main__":
duration = 10 # Время измерения в секундах
# Синхронное взаимодействие
print("Измерение производительности синхронного взаимодействия...")
sync_count = measure_sync_performance(duration)
print(f"Синхронных запросов обработано: {sync_count}")
# Асинхронное взаимодействие
print("\nИзмерение производительности асинхронного взаимодействия...")
async_count = asyncio.run(measure_async_performance(duration))
print(f"Асинхронных запросов обработано: {async_count}")
#Вот задание:
Необходимо разработать программу для моделирования взаимодействия двух информационных систем синхронным и асинхронным способом и определить максимальное количество обработанных запросов за 10 секунд. Настраиваемые параметры:
- Длительность запроса в БД (начальное значение – 0,2 с);
- Время обработки запроса и формирование ответа (начальное значение – 0,1 с). почему то выводит ответ с синхронным способом, но не выводит с асинхронным.. не знаю, что делать