我想知道是否有人可以提供任何建议。我为几个 POJO 编写了一个 Json 反序列化器/序列化器。为了使它们尽可能通用,它们依靠反射来反对 POJO getter/setter 方法等。由于这是对性能的最大影响,我尝试创建一种“ClassUtils”缓存,在检索后存储 Method 对象(我使用 Introspector 获取属性描述符列表,然后获取 get/set从那里的方法)
然而,我尝试首先使用 Guava LoadingCache - 虽然它有一些非常好的和有用的功能,但与我创建的自定义缓存相比,它非常慢 - 使用 Guava 缓存序列化 1,000 个对象需要 3.5 秒,而我的只有 <1 秒自己的...但是,我自己的缓存缺少很多 Guava 的有用功能(例如清除旧条目等)
有没有关于提高 Guava 性能或改进自定义缓存的建议?我不能像工作一样发布任何代码,但是我自己的自定义缓存基本上是存储 PropertyDescriptors 的 HashMap 的包装器,使用字符串作为键(我需要将键存储为完整的类名加上属性名称,例如“com.company.package.classes.myclass.property”)