我在C#中有一个类,它将信息存储在堆栈中,以供稍后的其他应用程序使用。该信息当前存储在一个类中(没有任何方法),并包含一些int,short,float和一些布尔值。 我可以每秒处理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;
}
有没有更好的方式来表示这些信息?堆栈不可能变得太大(如果它开始变得太大,大部分信息都会被清除)但是我担心创建这么多类的实例会产生不必要的内存开销只是这个信息的容器。尽管这既不是一个计算复杂的任务,也不是一个耗费内存的任务,但如果它成为任何一个,我认为它不会很好地扩展。
答案 0 :(得分:4)
这听起来好像是使用通用Queue来存储它们。我假设您按顺序处理这些“消息”。
至于实例化这些类的开销,我不认为实例化每秒10-40会对性能产生任何明显的影响,之后你做的实际处理可能是一个比成本更好的优化候选者实例化。
另外,我建议只在实际测量应用程序性能时进行优化,否则可能会浪费时间进行过早优化。