c# - 在 getter 中返回新结构是否会降低性能?
问题描述
我有一个公共吸气剂返回一个永远不会改变的结构:
public Vector3 Center => new Vector3(0.5f, 0.5f, 0.5f);
它不是静态的,因为它可能会在未来发生变化,但现在它始终是相同的值。
总是创建一个新的 Vector3 (一个结构),而不是做这样的事情,是否有性能损失:
static readonly Vector3 half = new Vector3(0.5f, 0.5f, 0.5f);
public Vector3 Center => half;
我知道结构是按值返回的,所以值复制总是会发生的。我也知道性能上的任何差异都会很小。我只是想知道额外的建设。这可能是编译器可以识别和优化的东西吗?
解决方案
每次新建对象时都会产生计算成本。它的成本程度是有争议的。
推荐阅读
- c# - 使用 UCMA 获得用户状态?
- google-sheets - 填写 Google 表格 QUERY 向下列
- tensorflow2.0 - 无法使用 DNNRegressor 进行增量训练
- mysql - 如何将 MySQL 查询转换为 CodeIgniter 语法?
- docker - 如何修复类型“bind”的无效挂载配置:源路径必须是 Windows docker Container 中的目录?
- c++ - C++ 函数在数字和字母之间添加空格
- python - 如何以小写形式获取ansible事实
- xml - USPS 国际费率 OriginZip
- javascript - 在什么情况下 Windows 边缘浏览器可以获得文件的完整文件路径?
- python - 如何在循环中打开多个文件,在python中