Поскольку вы устанавливаете скользящее окончание, не всегда ли это 10 минут с момента, когда вы обращались к нему? если объект имеет значение NULL, кэш-запись истек, а если нет, то срок действия (в приведенном выше коде) всегда равен 10 минутам с момента проверки?
Или у вас может быть базовый объект (все ваши кэшируемые объекты наследуются) с временем истечения срока действия в качестве свойства, которое устанавливается при добавлении кеша. Когда вы извлекаете объект, вы проверяете свойство, и у вас есть время истечения, чтобы рассчитать разницу. Просто мысль.
Помимо профилировщика, простой способ получить то, что вам нужно, следующий:
public class SomeClass{
public void somePublicMethod()
{
long startTime = System.currentTimeMillis();
someMethodWhichYouWantToProfile();
long endTime = System.currentTimeMillis();
System.out.println("Total execution time: " + (endTime-startTime) + "ms");
}
}
Вам следует использовать профилировщик, например
. Он легко интегрируется с любой IDE и показывает все необходимые детали.
Конечно, эти инструменты сложны и предназначены для профилирования сложных программ. Если вам нужны только простые тесты производительности, я предлагаю вам использовать System.currentTimeMillis ()
или System.nanoTime ( )
и самостоятельно вычислите дельту в миллисекундах между вызовами.
Вы можете добавить этот код, и он сообщит вам, сколько времени потребовалось для выполнения метода.
long millisecondsStart = System.currentTimeMillis();
executeMethod();
long timeSpentInMilliseconds = System.currentTimeMillis() - millisecondsStart;
Использование профилировщика лучше, потому что вы можете узнать среднее время выполнения и узкие места в вашем приложении.
Я использую VisualVM. ловко и просто.
Jprofiler и yourkit хороши, но стоят денег.
Существует бесплатный плагин для eclispe под названием TPTP (Test & Performance Tools Platform), который может дать вам время выполнения кода. Вот учебник, который можно найти с помощью быстрого поиска в Google. http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html