Если Вы хотите истинные случайные данные, то, к сожалению, необходимо ожидать их. Это включает семя для SecureRandom
PRNG. Редкая Математика не может собрать истинные случайные данные немного быстрее, чем SecureRandom
, хотя это может соединиться с Интернетом для загрузки данных семени из конкретного веб-сайта. Мое предположение - то, что это вряд ли будет быстрее, чем /dev/random
, где это доступно.
, Если Вы хотите PRNG, сделайте что-то вроде этого:
SecureRandom.getInstance("SHA1PRNG");
то, Какие строки поддерживаются, зависит от SecureRandom
поставщик SPI, но можно перечислить их использующий Security.getProviders()
и Provider.getService()
.
Sun любит SHA1PRNG, таким образом, это широко доступно. Это не особенно быстро, когда PRNGs идут, но PRNGs будет просто производить подсчеты, не блокируясь для физического измерения энтропии.
исключение - то, что, если Вы не звоните setSeed()
прежде, чем получить данные, тогда PRNG отберет себя однажды в первый раз, когда Вы звоните next()
или nextBytes()
. Это будет обычно делать это использование довольно небольшого количества истинных случайных данных из системы. Этот вызов может заблокироваться, но сделает Ваш источник случайных чисел намного более безопасным, чем какой-либо вариант "хеша текущим временем вместе с PID, добавить 27, и надежда на лучшее". Если все, в чем Вы нуждаетесь, является случайными числами для игры, тем не менее, или если Вы хотите, чтобы поток был повторяем в будущем с помощью того же семени для тестирования, небезопасное семя все еще полезно.
Я рекомендую httperf от HP. Поскольку он просто отправляет HTTP-запросы, он работает независимо от сервера, на котором вы тестируете. Однако для его запуска вам понадобится Linux-машина. Другой популярный инструмент - Apache Benchmark (AB) . Я не рекомендую его как лучший из доступных инструментов, но с его помощью было проведено множество тестов, поэтому с ним легче сравнивать результаты и делать выводы.
Microsoft предлагает различные другие инструменты для тестирования, но не так широко используются.
Я использую JMeter для стресс-тестирования нашего сайта ASP.NET MVC. Это просто как пирог, стоит только один раз попробовать и понять, как использовать приложение.
Например, у меня есть CSV-файл, который я использую в качестве данных динамического поиска. Затем я создал HttpRequest в Jmeter и передал в него данные из CSV. (это имитирует, что я нажимаю на этот url для получения данных, которые я хочу использовать).
У меня есть Jmeter Gaussian Timer для имитации приливов и отливов (рандомизации) просмотров url.
Затем я наконец говорю ...
C:\Temp\jakarta-jmeter-2.3.4\bin\jmeter -n -t "C:\Users\Administrator\Desktop\JMeter Test Files\my_jmeter_config_file.jmx" -Dthreads=50 -Dloops=10 -Drampup=5
что означает ... цикл 10 раз. Каждый цикл будет содержать 50 потоков ... и он создает до 50 потоков за 5 секунд.
Так что да, я использую это. Это хорошо!
Да, я успешно использовал JMeter на моем веб-сайте ASP.NET (не MVC).
Эти два руководства были находкой: