1
|
brainimus user417509 · 技术社区 · 14 年前 |
1
2
运行您提供的完整示例
只有在调试模式下运行时,慢时间才会变慢。这是因为在调试模式下,方法从不内联,并且到处都有nop允许您中断,例如在Id getter中。 因为您显然关心运行速度,所以我将指出一个无关的低效之处:您运行查询两次:一次用于计数,另一次用于迭代子项。只运行一次(循环中的count增加1)应该会加快速度。
顺便说一句,我通常解决这个问题的方法是,如果打电话给
|
2
1
好吧,即使属性访问是内联的,我怀疑它仍然需要在每次迭代中做一个空值检查。这是一个额外的条件,例如可能会破坏分支预测。 玩一个完整的例子会很有趣,但我 犯罪嫌疑人 事实上,您对每个委托调用都执行了一个额外的操作。还有一种可能是,这个“额外的一点点”已经关闭了与委托相关的其他一些内联,从而导致了某种domino性能影响。 |
3
0
|
4
0
在“功能继续”中,是否再次使用childrenQuery?你知不知道每次都会重新列举这些结构?不要多次枚举大型数据集,每个项目上属性的访问成本不会造成太大影响。
|
5
0
如你所见,
而且总是有多线程也会把事情搞砸。由于变异的可能性,检查属性值所需的代价是必要的。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |