将近50个属性被设置为Model对象,其中包括列表、枚举、字符串
model.addAttribute("casetype", Casetype.values());
model.addAttribute("caseStatus", CaseStatus.values());这是为每个控制器执行的通用代码,但是对于所有控制器,我们只需要4-5个吸引子,所有其他的45个属性都是无用的。
如果我们删除这45个属性,或者让它保持对所有控制器的性能,会有什么性能好处吗?
发布于 2018-04-03 13:09:20
这个模型基本上是一个HashMap<String, Object>。放入模型中的每个值都将触发HashMap上的put操作。HashMap上的Put/Get操作通常是O(1)。然而,将所有这些值放入模型确实需要一些计算能力,这些值在呈现视图时将留在内存中,并且必须在某个时候被垃圾收集。
TLDR:将所有这些变量放入模型确实会影响性能,但这确实取决于应用程序的大小和端点被触发的频率。如果您需要最大的性能,您应该从您的模型对象中去掉任何红项,如果它只是一些用户,那么您可能可以保持原样。
https://stackoverflow.com/questions/49630547
复制相似问题