Вы добавили его зависимость?
Я думаю, вам нужно добавить в зависимости gradle сборки
testImplementation 'junit: junit: 4.12'
Или удалить .gradle и Затем .idea аннулирует кеш и перезапускает
Единственным приемлемым основанием для оптимизации являются данные. Мера, генерирующая это встроенное кэширование и кэширование меры это.
Моя высокопроизводительная рабочая станция может вычислить хорошо по хешам 100k MD5 10-байтового сегмента данных через секунду. Было бы нулевое преимущество от кэширования этого для меня, и я держал пари, что это - то же для Вас.
Генерируйте некоторые демонстрационные данные. Ну, многое из него. Вычислите MD5 демонстрационных данных. Измерьте время, которое требуется. Решите для себя.
Если это будет то же в течение данного дня, кэшируя его, могла бы быть идея. Вы могли даже установить кэш, чтобы быть 24 часами и написать код для регенерации хеша, когда кэш истекает
Вычислите временную сложность алгоритма!
Взгляд на следующий код:
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.
Также для адресации проблемы кэша у меня была бы своя "тяжелая" работа в Памяти, так как память является менее дорогой по сравнению с использованием ЦП.
Использование Asp. Сетевой кэш очень легок, таким образом, я не вижу, почему Вы не должны кэшировать ключ.
Хранение ключа в кэше может даже сохранить некоторую память, так как можно снова использовать его вместо того, чтобы создать новый для каждого запроса.