我已经实现了一个由一堆AVL tres和一些RoaringBitmaps组成的缓存。此缓存存储在应用程序启动时从数据库读取的数据,此后不联系数据库,并且从上述缓存提供所有请求。这些AVL树和位图是实例化一次的Java对象,比如使用单例模式。我注意到从缓存中获取数据的速度很慢,如果同一个查询一次又一次地重复,它会变得更快,但每个唯一请求的第一个查询都很慢。我怀疑GC暂停和长生活对象的一些其他问题有些问题。你有什么想法吗?
答案 0 :(得分:0)
如果您在服务器VM上运行,通常情况下,您可能会看到应用程序在某些使用后变得更快的效果,请参阅:Real differences between "java -server" and "java -client"?
你有GC暂停吗?互联网上的人应该如何知道?!请咨询:Java Garbage Collection Log messages