【发布时间】:2019-03-24 19:03:34
【问题描述】:
我有以下控制器:
@GetMapping("/v1/quotes")
public List<MyQuote> getQuotes() {
return hazelcastMap.values().stream()
.map(r -> new Quote(r))
.collect(Collectors.toList());
}
这大约需要 330 毫秒,但我需要改进它以在 100 毫秒或更快的时间内执行请求。
有什么提高性能的想法吗?
【问题讨论】:
-
通过分析器运行代码是否显示大部分时间都花在了哪里?重复运行是否会提高性能(Hazelcast 是否可能将数据节点带到本地,而不是在第一次调用期间必须从远程源获取它 - 抱歉,不知道 Hazelcast 的具体情况)?使用 'r' 参数的 Quote 构造函数在计算上是否昂贵?
-
@不是JD,引用构造函数很轻量级
-
@Not a JD 330 ms 是性能测试期间的汇总结果
-
如果您手头没有 JProfiler 或 YourKit 之类的东西,请尝试通过 VisualVM 会话运行多个调用,看看大部分时间都花在了哪里。
-
@gstackoverflow,你在 Hazelcast 地图中有多少数据,包括 # 还是记录和总数据大小?此外,这是嵌入式和客户端/服务器部署吗?您能否提供一些有关部署的信息。 # 节点数、网络速度等?
标签: java performance optimization hazelcast hazelcast-imap