【发布时间】:2020-02-17 00:27:19
【问题描述】:
使用
有没有区别性能方面示例 1
var myObject = new GameObject();
myObject.name = "myObjectName";
和
示例 2
var myObject = new GameObject("myObjectName");
this 等一些文章建议避免使用示例 1,因为调用的是原生代码,会损害性能。
出于好奇,我检查了GameObject 类的the documentation,并没有说明任何构造函数可能如何影响性能。
我目前的理论是,示例 2 类似于 instantiating an object and immediately specifying a parent,因为这应该比实例化对象并稍后指定父对象更好。
【问题讨论】:
-
可能值得只测试每一个,看看一个是否比另一个表现更好
-
我看了统一源码,example1和example2也叫native code。所以也许你可以写一些测试来检查它?
-
第一个例子需要更多的属性访问,所以可能第二个更快。但老实说,除非您对 10.000 个对象执行此操作,否则我认为这并不重要,与实例化本身所需的时间相比,设置名称的影响应该很小。
-
纯粹出于好奇,您这样做了多少次才如此关心性能?
-
一次可能有 100 个左右的电话。它有助于识别场景中的对象,但这仅在编辑器中有用,我发现我并没有真正依赖它太多。许多其他事情同时发生,因此我可以消除的开销越多越好。我也在低端移动设备上测试!
标签: c# unity3d gameobject