spring - 调用 API 时不想重复生成对象
问题描述
在Spring中,有一个对象,我在调用这个API的时候需要创建它,但是这个对象的参数每次都不一样。这不是个好主意吗?我该如何改进它?用setter重置参数?</p>
解决方案
根据您的描述,我相信您可能面临过早优化的风险,那就是您花费大量时间担心无关紧要的事情。更糟糕的是,针对内存或 CPU 进行优化通常会降低可读性,这会使 bug 更容易引入。因此,只有当您有明显的问题并且分析器表明该区域是问题的根源(适当的内存或 CPU 分析器)时,您才应该对内存或 cpu 进行优化
以您的示例为例,您担心每个请求都会生成一个 List(大概是一个 Arraylist?)。这些本身就是小型数据结构(可能占总内存使用量的一小部分),它们只有在包含大量其他大型对象时才会变大,更糟糕的是,您建议重置列表并在 api 请求之间重用它。这种对列表的重用和重置会引入一个只会间歇性发生的微妙错误(最糟糕的错误);如果两个 API 请求重叠(很可能是 Web 服务器),那么它们将同时使用该列表;来自请求 A 的状态可能会泄漏到 B 中,反之亦然。这几乎是一个完美的例子,说明了为什么你不应该过早地进行优化。
(如果列表包含从未改变的静态数据,那么我的答案可能会有所不同)
推荐阅读
- java - Flutter - 无法在本机代码中访问侦听器
- python - 将 python 输出传递给 Bash 脚本变量
- python - 在模板中排列 Django 模型行
- python - 如何确定 lru_cache 所需的最大大小?
- image - SwiftUI:如何覆盖具有多种形状和依赖定位的图像
- react-native - 无法使用 React-Ntive 将 userId 作为参数发布
- c# - C# 将数据从 DataTable 更新到数据库(Winforms 应用程序)
- javascript - 切换数组VueJS中对象的属性?
- d3.js - 如何附加圆角矩形
- ios - IOS移动禁用缩放