当前位置: 首页 > 知识库问答 >
问题:

帮助反射的高性能对象缓存

戴鸿羽
2023-03-14

共有1个答案

魏旭
2023-03-14

我不会使用JSON。如果您使用二进制格式,那么根据数据结构的复杂程度,序列化/反序列化的性能可能是它的10-100倍。如果您想要性能,您将避免使所有东西完全通用。

您可以使用LinkedHashMap作为LRU缓存,只需几行代码。

将每个属性存储为单独的键比使用适当的对象大约慢一个数量级。(同样,这不太通用,但效率更高)

 类似资料:
  • 我有大约20万张唱片要储存。我已经实现了Java客户端来从hazelcast地图中搜索记录。我没有在预期时间内得到搜索结果。 一旦我做Hazelcast喜欢或在查询,它需要最少400到500毫秒。 是否可以更改服务器端和客户端配置以提高吞吐量? 我用键值将JavaBean信息存储在Map中。我还在一个字段上创建了索引。还实现了身份序列化机制。 服务器端配置(使用XML文件设置服务器): 客户端代码

  • 问题内容: 使用反射而不是调用类构造函数来创建对象是否会导致任何显着的性能差异? 问题答案: 由于反射涉及动态解析的类型,因此无法执行某些Java虚拟机优化。因此,反射操作的性能要比非反射操作慢,因此应避免在对性能敏感的应用程序中经常调用的代码段中。 这是一个简单的测试,我在运行Sun JRE 6u10的计算机上用5分钟的时间破解了它: 结果如下: 请记住,查找和实例化是一起完成的,在某些情况下,

  • Reflector是mybatis中定义的一个用于描述类定义信息的对象,它缓存了指定对象的类型,可读/可写属性,getter/setter方法,以及构造器等信息,并提供了操作这些属性或方法的入口,有效的简化针对指定对象的方法和属性的反射操作。 Reflector对象的定义和实现涉及到的东西比较多,我们先简单了解一下这个类的属性定义: public class Reflector { /**

  • 网上都说nginx和lighthttpd是高性能web服务器,而tornado也是著名的高抗负载应用,它们间有什么相似处呢?上节提到的ioloop对象是如何循环的呢?往下看。 首先关于TCP服务器的开发上节已经提过,很明显那个三段式的示例是个效率很低的(因为只有一个连接被端开新连接才能被接受)。要想开发高性能的服务器,就得在这accept上下功夫。 首先,新连接的到来一般是经典的三次握手,只有当服

  • 反射(Reflection) 对象用于在运行时获取类型信息。该类位于 System.Reflection 命名空间中,可访问一个正在运行的程序的元数据。 System.Reflection 命名空间包含了允许您获取有关应用程序信息及向应用程序动态添加类型、值和对象的类。 反射的应用 反射(Reflection)有下列用途: 它允许在运行时查看属性(attribute)信息。 它允许审查集合中的各种