Насколько дорогой поколение MD5 в.NET?

Вы добавили его зависимость?

Я думаю, вам нужно добавить в зависимости gradle сборки

testImplementation 'junit: junit: 4.12'

Или удалить .gradle и Затем .idea аннулирует кеш и перезапускает enter image description here

7
задан Aaron Powell 7 January 2009 в 05:49
поделиться

5 ответов

Единственным приемлемым основанием для оптимизации являются данные. Мера, генерирующая это встроенное кэширование и кэширование меры это.

Моя высокопроизводительная рабочая станция может вычислить хорошо по хешам 100k MD5 10-байтового сегмента данных через секунду. Было бы нулевое преимущество от кэширования этого для меня, и я держал пари, что это - то же для Вас.

14
ответ дан 6 December 2019 в 11:53
поделиться

Генерируйте некоторые демонстрационные данные. Ну, многое из него. Вычислите MD5 демонстрационных данных. Измерьте время, которое требуется. Решите для себя.

3
ответ дан 6 December 2019 в 11:53
поделиться

Если это будет то же в течение данного дня, кэшируя его, могла бы быть идея. Вы могли даже установить кэш, чтобы быть 24 часами и написать код для регенерации хеша, когда кэш истекает

0
ответ дан 6 December 2019 в 11:53
поделиться

Вычислите временную сложность алгоритма!

Взгляд на следующий код:

   public string GetMD5Hash(string input)
    {
        System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
        bs = x.ComputeHash(bs);
        System.Text.StringBuilder s = new System.Text.StringBuilder();
        foreach (byte b in bs)
        {
            s.Append(b.ToString("x2").ToLower());
        }
        string password = s.ToString();
        return password;
    }

Если бы мы должны были вычислить временную сложность, то мы получили бы T = 11 + n * 2 однако, это просто, "что мы видим", т.е. ToLower мог бы сделать некоторую тяжелую работу, которую мы не знаем. Но от этой точки мы видим, что этот алгоритм является O (n) во всех случаях. Значение времени растет как данные growns.

Также для адресации проблемы кэша у меня была бы своя "тяжелая" работа в Памяти, так как память является менее дорогой по сравнению с использованием ЦП.

0
ответ дан 6 December 2019 в 11:53
поделиться

Использование Asp. Сетевой кэш очень легок, таким образом, я не вижу, почему Вы не должны кэшировать ключ.

Хранение ключа в кэше может даже сохранить некоторую память, так как можно снова использовать его вместо того, чтобы создать новый для каждого запроса.

0
ответ дан 6 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

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