/
onequ1z
/
JavaCoursePaperTulSU
Обзор
Документация
Войти
/
onequ1z
/
JavaCoursePaperTulSU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/ru/dmitry/montecarlo/service/Profiler.java
65 строк
2 KB
tayno
Рефакторинг: добавление секундомера, профилировщика и очистка кода
05 дек 2025, 09:37
05 дек 2025, 09:37
52c8b9a
Код
Авторство
О чём код?
package ru.dmitry.montecarlo.service; import ru.dmitry.montecarlo.util.Stopwatch; import java.util.logging.Logger; /** * Простой профилировщик для измерения времени выполнения операций Монте-Карло. * Использует логирование для вывода информации о производительности. */ public class Profiler { private static final Logger logger = Logger.getLogger(Profiler.class.getName()); private final boolean enabled; /** * Создаёт профилировщик. * * @param enabled если true, профилирование активно, иначе все методы являются no-op */ public Profiler(boolean enabled) { this.enabled = enabled; } /** * Создаёт профилировщик, отключённый по умолчанию. */ public Profiler() { this(false); } /** * Начинает профилирование операции с заданным именем. * Логирует начало операции, если профилирование включено. * * @param operationName имя операции */ public void startOperation(String operationName) { if (enabled) { logger.fine("Начало операции: " + operationName); } } /** * Завершает профилирование операции. * Логирует завершение операции и время выполнения, если профилирование включено. * * @param operationName имя операции * @param stopwatch секундомер, который был использован для измерения времени */ public void endOperation(String operationName, Stopwatch stopwatch) { if (enabled && stopwatch != null) { long duration = stopwatch.isRunning() ? stopwatch.elapsedMillis() : 0L; logger.fine("Завершение операции: " + operationName + ", время: " + duration + " мс"); } } /** * Проверяет, включено ли профилирование. * * @return true, если профилирование включено */ public boolean isEnabled() { return enabled; } }