【发布时间】:2014-05-03 18:50:45
【问题描述】:
我有一个类,它从数据库中获取数据并发送到 UI 以生成图表。
类的执行时间是14秒
List listOfCLI =new ArrayList();
List listOfRRV =new ArrayList();
List listOfROP =new ArrayList();
List listOfACR =new ArrayList();
List listOfPIN =new ArrayList();
List listOfRIS =new ArrayList();
List listOfTAA =new ArrayList();
List listOfTAR =new ArrayList();
List listOfPHA =new ArrayList();
List listOfSAR =new ArrayList();
List listOfGRQ =new ArrayList();
List listOfADC =new ArrayList();
当我将代码更改为
List<DataMS> listOfCLI =new ArrayList<DataMS>();
List<DataMS> listOfRRV =new ArrayList<DataMS>();
List<DataMS> listOfROP =new ArrayList<DataMS>();
List<DataMS> listOfACR =new ArrayList<DataMS>();
List<DataMS> listOfPIN =new ArrayList<DataMS>();
List<DataMS> listOfRIS =new ArrayList<DataMS>();
List<DataMS> listOfTAA =new ArrayList<DataMS>();
List<DataMS> listOfTAR =new ArrayList<DataMS>();
List<DataMS> listOfPHA =new ArrayList<DataMS>();
List<DataMS> listOfSAR =new ArrayList<DataMS>();
List<DataMS> listOfGRQ =new ArrayList<DataMS>();
List<DataMS> listOfADC =new ArrayList<DataMS>();
执行时间长达 17 秒.. 为什么添加 Eclipse 建议的 Generic 会产生如此不利的影响。
您还可以建议使用泛型来减少执行时间的最佳方法
**Map<String, List> reqCLI =new HashMap<String, List>();
Map<String, List> reqRRV =new HashMap<String, List>();
Map<String, List> reqROP =new HashMap<String, List>();
Map<String, List> reqACR =new HashMap<String, List>();
Map<String, List> reqPIN =new HashMap<String, List>();
Map<String, List> reqTAA =new HashMap<String, List>();
Map<String, List> reqTAR =new HashMap<String, List>();
Map<String, List> reqRIS =new HashMap<String, List>();
Map<String, List> reqPHA =new HashMap<String, List>();
Map<String, List> reqSAR =new HashMap<String, List>();
Map<String, List> reqGRQ =new HashMap<String, List>();
Map<String, List> reqADC =new HashMap<String, List>();
List<Map<String, List>> listCLI=new ArrayList<Map<String, List>>();
List<Map<String, List>> listRRV=new ArrayList<Map<String, List>>();
List<Map<String, List>> listROP=new ArrayList<Map<String, List>>();
List<Map<String, List>> listACR=new ArrayList<Map<String, List>>();
List<Map<String, List>> listPIN=new ArrayList<Map<String, List>>();
List<Map<String, List>> listTAA=new ArrayList<Map<String, List>>();
List<Map<String, List>> listTAR=new ArrayList<Map<String, List>>();
List<Map<String, List>> listRIS=new ArrayList<Map<String, List>>();
List<Map<String, List>> listPHA=new ArrayList<Map<String, List>>();
List<Map<String, List>> listSAR=new ArrayList<Map<String, List>>();
List<Map<String, List>> listGRQ=new ArrayList<Map<String, List>>();
List<Map<String, List>> listADC=new ArrayList<Map<String, List>>();**
这些是剩余的集合使用
【问题讨论】:
-
List 或 List
将是相同的东西 (List -> List) -
泛型对执行时间没有影响。你有基准测试结果来证明你的观点吗?
-
就像我说的那样,在添加 List
listOfCLI =new ArrayList (); 代替 List listOfCLI =new ArrayList(); 后执行时间增加到 27 秒;我现在正在运行它......正如我们所说的 -
你用什么JVM来执行代码?
-
这不是一个好的基准,因为它包含太多的sout,这些sout会伪造您真正想要测量的内容。
标签: java performance collections arraylist hashmap