gpt4 book ai didi

JAVA性能洞察,重构现有代码

转载 作者:行者123 更新时间:2023-12-02 10:54:39 25 4
gpt4 key购买 nike

我有如下代码,目标是将数据层的输出转换为通用数据格式,以便其他层可以使用。

在我的 LT 运行期间,我观察到这种方法消耗了相当大比例的 CPU 时间,但与所有时间相比,它看起来仍然是可控的。

但担心进行压力测试时可能会崩溃,因此考虑重构以删除对象映射器的使用并通过迭代进行转换。

我不太喜欢将对象转换为字符串,然后再转换回另一个对象结构。我的信念是避免转换(对象-->字符串-->对象),这会节省时间和内存,这是正确的假设吗?

ObjectMapper om = new com.fasterxml.jackson.databind.ObjectMapper();
String listGridData = om.writeValueAsString(com.fasterxml.jackson.databind.node.ArrayNode grid);
List<Map<String, Object>> responseList = om.readValue(listGridData,
new TypeReference<List<Map<String, Object>>>() {
});

最佳答案

ObjectMapper 是您想要重用的东西。每个应用程序应该有一个实例。对象映射器是线程安全的,重用它没有问题。

从性能角度来看,第二行不是问题。有或没有它几乎是一样的。

第三行的性能取决于您要解析字符串的对象的复杂性。越复杂,初始化的引用就越多,占用的内存也就越多。这会对性能产生影响。

在第三步中解析的对象的轻量级与内存管理以及 ObjectMapper 的重用一起至关重要。

关于JAVA性能洞察,重构现有代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51864980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com