Класс секундомера для Java

Смотрите на эта статья ned Batchelder здесь . Его статья об останавливающихся спам-роботах, но те же методы могли легко относиться к Вашему сайту.

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

Эта техника - то, как я предотвращаю спам-роботы на этом сайте. Это работает. Метод, описанный здесь, не смотрит на содержание вообще.

Некоторые другие идеи:

  • Создают , чиновник автоуведомляет механизм (канал RSS? Twitter?), что люди могут подписаться на то, когда Ваш продукт поступает в продажу. Это уменьшает потребность для людей для создания сценариев.
  • Изменение Ваш метод путаницы прямо прежде новый объект поступает в продажу. Таким образом, даже если сценаристы могут нарастить гонку вооружений, они всегда - день позади.

РЕДАКТИРОВАНИЕ: Чтобы быть полностью ясной, статья Ned выше описывает методы для предотвращения автоматизированной ПОКУПКИ объектов, препятствуя тому, чтобы BOT прошел формы для размещения заказа. Его методы не были бы полезны для предотвращения ботов от анализа экранных данных домашняя страница для определения, когда Нагрудный патронташ Моркови поступает в продажу. Я не уверен предотвращение, КОТОРОЕ действительно возможно.

Относительно Ваших комментариев об эффективности стратегий Ned: Да, он обсуждает ловушки, но я не думаю, что это - его самая сильная стратегия. Его обсуждение СЧЕТЧИК является исходной причиной, я упомянул его статью. Извините я не сделал это более ясным в моем исходном сообщении:

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

  • метка времени,
  • IP-адрес клиента,
  • идентификатор записи записи в блоге, прокомментированной, и
  • секрет А.

Вот то, как Вы могли реализовать это по WOOT.com:

Изменение "секретное" значение, которое используется в качестве части хеша каждый раз новый объект, поступает в продажу. Это означает, что, если бы кто-то собирается разработать BOT, чтобы автокупить объекты, , он только работал бы, пока следующий объект не прибывает в продаже !!

, Даже если кто-то в состоянии быстро восстановить их бота, все другие фактические пользователи уже купят BOC, и Ваша проблема решена!

другая стратегия, которую он обсуждает, к изменение метод ловушки время от времени (снова, измените его, когда новый объект поступает в продажу):

  • классы CSS Использования (рандомизированный, конечно) для установки полей или содержания элемента к display:none.
  • Цвет поля то же (или очень похожий на) фон страницы.
  • расположение Использования для перемещения поля прочь видимой области страницы.
  • Делают элемент слишком маленьким для показа содержавшего поля ловушки.
  • Отпуск видимые поля, но расположение использования для покрытия их элементом затемнения.
  • Использование JavaScript для осуществления любого из этих изменений, требуя, чтобы бот имел полный механизм JavaScript.
  • Отпуск ловушки, отображенные как другие поля, но, говорят людям не вводить что-либо в них.

я предполагаю, что моя полная идея состоит в том, чтобы ИЗМЕНИТЬ ДИЗАЙН ФОРМЫ, когда каждый новый объект поступает в продажу. Или ПО КРАЙНЕЙ МЕРЕ, изменение это, когда новый BOC поступает в продажу.

, Который является что, пара времен/месяц?

при принятии этого ответа Вы дадите мне предостережение на том, когда следующий будет должен?:)

52
задан AlBlue 10 September 2009 в 10:30
поделиться

4 ответа

Spring Framework имеет отличный класс StopWatch :

StopWatch stopWatch = new StopWatch("My Stop Watch");

stopWatch.start("initializing");
Thread.sleep(2000); // simulated work
stopWatch.stop();

stopWatch.start("processing");
Thread.sleep(5000); // simulated work
stopWatch.stop();

stopWatch.start("finalizing");
Thread.sleep(3000); // simulated work
stopWatch.stop();

System.out.println(stopWatch.prettyPrint());

Это дает:

    StopWatch 'My Stop Watch': running time (millis) = 10000
    -----------------------------------------
    ms     %     Task name
    -----------------------------------------
    02000  020%  initializing
    05000  050%  processing
    03000  030%  finalizing
97
ответ дан 7 November 2019 в 09:18
поделиться

Вы можете попробовать System.currentTimeMillis () , но также есть хорошие параметры профилирования в некоторых хорошо известных IDE, таких как eclipse и netbeans. Кроме того, помимо IDE, вы можете попробовать автономные профилировщики в своих задачах измерения производительности. Я думаю, что с помощью профилировщиков вы получите лучшие результаты, чем с помощью System.currentTimeMillis () .

0
ответ дан 7 November 2019 в 09:18
поделиться

java.lang.System.nanoTime ()

Или вы можете использовать StopWatch, который поставляется в общем доступе apache. Этот класс использует java.lang.System.currentTimeMillis ()

http://commons.apache.org/lang/api-release/org/apache/commons/lang/time/StopWatch.html

5
ответ дан 7 November 2019 в 09:18
поделиться

Если вы просто хотите измерить это, используйте класс секундомера или, может быть, просто секундомер.

Если вы хотите сделать это быстрее, рассмотрите это .

0
ответ дан 7 November 2019 в 09:18
поделиться
Другие вопросы по тегам:

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