0

我有一种情况,我应该跟踪应用于字段的 FIRST 更改。这件事适用于我需要尽可能高效的结构的“一些”(如果我没记错的话是 10 个)字段(它是一个结构,将集中用于在线程之间传递信息以呈现/更新数据;它是基本上是一个消息传递结构)。

在这种情况下,我说的是 xbox .net compact 框架,我听说属性有性能问题,因为它们没有内联,所以我的问题是:

面对这种情况最好的方法是什么?

2个想法:

1)我会跟踪对某个字段所做的第一次更改,因此我使用一个属性会自动将位字段设置为 1 来表示“我已被更改!” (这个位字段是单个 int 的一部分,所以它只有 4 个字节的开销),但我会浪费所有其他对该属性的调用,因为它们只会更改值,因为该位已经设置(直到下一帧显然)

2)手动跟踪字段的变化(这将是公开的),用我自己的双手设置位(更多的错误可能性但优化)

感谢您的任何建议

4

2 回答 2

1

我可以想象的唯一“改进”的方法(1)是使用委托 - 保留两个版本的属性集代码,一个设置位字段,一个不设置。然后在设置位后使属性使用第二个版本。这样,您将避免始终设置位字段的开销(但会获得较小的委托调用开销)。

于 2010-12-11T15:11:10.233 回答
0

正如 rsenna 所说,我发现的唯一解决方案是留在公共领域或使用功能,而不必担心执行缓慢。没有解决方案

于 2011-07-21T09:04:45.080 回答