gpt4 book ai didi

java - 代码设计: performance vs maintainability

转载 作者:搜寻专家 更新时间:2023-11-01 03:20:31 26 4
gpt4 key购买 nike

<分区>

情境化

我正在测试上下文中使用 soot 框架实现字节码检测器,我想知道哪种设计更好。

我正在为我正在检测的类中的每个方法构建 TraceMethod 对象,我想在多个类上运行该检测器。

哪个选项提供更好的性能(时空)?

选项 1:( map )

public class TraceMethod {
boolean[] decisionNodeList;
boolean[] targetList;
Map<Integer,List<Integer>> dependenciesMap;
Map<Integer,List<Double>> decisionNodeBranchDistance;
}

选项 2:(对象)

public class TraceMethod {
ArrayList<Target> targets = new ArrayList<Target>();
ArrayList<DecisionNode> decisionNodes = new ArrayList<DecisionNode>();
}

public class DecisionNode {
int id;
Double branchDistance;
boolean reached;
}

public class Target {
int id;
boolean reached;
List<DecisionNode> dependencies;
}

我自己实现了选项 2,但我的老板建议我使用选项 1,他认为这是“更轻量级”。我在这篇文章“Class Object vs Hashmap”中看到 HashMap 使用的内存比对象多,但我仍然不相信我的解决方案(选项 2)更好。

这是一个简单的细节,但我想确保我使用的是最佳解决方案,我关心的是性能(时空)。我知道第二种选择在可维护性方面更好,但如果它不是最佳选择,我可以牺牲它。

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