1

我在 C# 中有一个类,它将信息存储在堆栈上,以供以后应用程序的其他部分使用。该信息当前存储在一个类中(没有任何方法),由一些整数、短裤、浮点数和几个布尔值组成。我每秒可以处理 10-40 个这样的数据包——可能更多——当程序的另一部分需要时,堆栈上的信息将被删除;但是,这不能保证在任何确定的时间间隔内发生。该信息也有可能不完整(我正在处理来自网络连接的数据包)。目前我有这样的表示:

public class PackInfo
{
    public boolean active;
    public float f1;
    public float f2;
    public int i1;
    public int i2;
    public int i3;
    public int i4;
    public short s1;
    public short s2;
}

有没有更好的方式来表示这些信息?堆栈不可能变得太大(如果它开始变得太大,大部分信息将被清除)但我担心在创建如此多的类实例以执行操作时会产生不必要的内存开销只不过是这些信息的容器。尽管这既不是一项计算复杂或消耗内存的任务,但我认为它的扩展性也不会很好。

4

1 回答 1

4

这听起来像使用通用队列来存储这些是个好主意。我假设您正在按顺序处理这些“消息”。

至于实例化这些类的开销,我认为每秒实例化 10-40 不会对性能产生任何明显的影响,您之后进行的实际处理可能比实例化成本更适合优化。

另外,我建议仅在您可以实际测量应用程序的性能时进行优化,否则您可能会浪费时间进行过早的优化。

于 2012-10-10T04:21:11.380 回答