Оптимизация обработки нескольких запросов в Django

Я пытаюсь построить простой REST API с помощью Django. Он работает очень хорошо, когда имеет дело с небольшим количеством запросов, но когда я издеваюсь над 100+ запросами одновременно, время ответа увеличивается с 0.3 секунд до 3-4 секунд. Я проверил время выполнения моего представления, и оно не превышает 0.1 секунды независимо от того, что происходит, что заставляет меня думать, что проблема в самой отправке ответа. Есть идеи, как это оптимизировать? Модель + представление, которые я использую:

class Permutation(models.Model):
    id = models.AutoField(primary_key=True)
    hash_code = models.TextField(null=False, unique=True)
    all_permutations = models.TextField(null=False)

@api_view(['GET'])
def similarWords(request):
    word = request.GET.get('word', None)
    start_time = datetime.now()
    if not word or not word.isalpha():
        updateLogs(start_time)
        print('invalid word')
        return HttpResponse(status=400)
    perm = Permutation.objects.filter(hash_code=getHashCode(word))
    if not perm:
        updateLogs(start_time)
        return HttpResponse(json.dumps({'similar': []}), content_type="application/json", status=200)
    else:
        perm = perm.first()
        permutations_array = perm.all_permutations.split(' ')
        if word in permutations_array:
            permutations_array.remove(word)
        data = {'similar': permutations_array}
        updateLogs(start_time)
        return HttpResponse(json.dumps(data), content_type="application/json", status=200)
Вернуться на верх