java - 使用 Spring MVC 在模型中添加多个属性会导致性能问题吗?

标签 java performance spring-mvc web-applications

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/

相关文章:

MongoDB 中索引数据类型的性能影响?

javascript - 提高页面性能,在服务器上保存 PHP 数组?

java - 使用 springform 时,jsp 页面出现 "equal symbol expected "问题

java - 使用动态规划查找最大大小的已排序子矩阵

java - 存储电子邮件附件元数据

javascript - 检查多个值并显示错误

java - Spring boot - MongoDb 在 RepositoryInvokerFactory 上获取 ClassNotFoundException

java - 身份验证成功后,spring security HttpSession 为 null

java - 正则表达式来剪切文本

java - 如何对 Spring MVC 验证注释错误消息进行单元测试?