我正在阅读有关缓存机制的文章,并使用带有AspectJ的SpringCaching创建了一个EhCache示例项目,并使用SpringJaching和AspectJ对谷歌缓存进行基准测试。我发现的,对我来说有点意外。
注意: - Spring缓存我的意思是,方法使用@ Cacheable / @Caching注释进行注释。
使用AspectJ的SpringCaching更适合,但另一方面,使用AspectJ的google缓存执行速度较慢。以下是处理请求所用时间的平均值: -
GoogleCacheWithoutAspect
1.262323232 ms
GoogleCacheWithAspect
5.205010101 ms
SpringCachingWithoutAspect
3.08548 ms
SpringCachingWithAspect
2.77782 ms
由于我是新手,所以我也想确认,为什么要使用AspectJ和Spring Caching,AspectJ如何更快地进行缓存。
我也遵循以下帖子,但仍然不确定,AspectJ是否真的提高了缓存性能。 http://architects.dzone.com/articles/cacheable-overhead-spring-0
答案 0 :(得分:1)
仍然不确定,AspectJ是否真的提高了缓存性能
来自article的数据清楚地表明,与Spring AOP相比,AspectJ在运行时开销方面远优于(与眼睛级别相比甚至优于手动缓存)。这是因为: