Model对象设置了近50个属性,包括列表、枚举、字符串
model.addAttribute("casetype", Casetype.values());
model.addAttribute("caseStatus", CaseStatus.values());
这是为每个 Controller 执行的通用代码,但对于所有 Controller ,我们只需要 4 - 5 个属性,所有其他 45 个属性都没有用。
如果我们删除这 45 个属性,或者让它保持所有 Controller 的原样,会有任何性能优势吗?
最佳答案
该模型基本上是 HashMap<String, Object>
。您放入模型中的每个值都会触发 HashMap
上的 put 操作。 。 HashMap
上的 Put/Get 操作通常 O(1)
。然而,将所有这些值放入模型确实需要一些计算能力,并且这些值将在渲染 View 时保留在内存中,并且必须在某个时刻进行垃圾收集。
TLDR:将所有这些变量放入模型中确实会影响性能,但这实际上取决于您的应用程序有多大以及端点触发的频率。如果您需要最大的性能,您应该从模型对象中删除任何多余的项目,如果只是一些用户,那么您可以将其保留原样。
关于java - 使用 Spring MVC 在模型中添加多个属性会导致性能问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49630547/