【发布时间】:2012-03-25 11:56:31
【问题描述】:
我想知道不断调整字节数组的大小是否会对性能产生重大影响。我正在向一个类添加数据,如果该类已经包含该数据类型,我需要将其添加到现有字节数组中,这意味着我需要调整它的大小。问题是我有一些数据类型会批量添加,这意味着可能会发生多个数组大小调整。
这会对性能产生巨大影响吗?这个类可能对性能非常关键。
如果是这样,那么我可能需要进行设计大修。
【问题讨论】:
-
您应该通过使用探查器查看相对于代码的其他部分执行它是否占用了大量时间。 VS 有一个内置的,有一些免费的,或者付费的,比如 ANTS 或 dotTrace。
-
构建它,分析它,如果它太慢,重构它。您认为对性能最关键的地方很可能实际上并不是对性能最关键的地方:)
-
@JayOtterbein 实际上我从来没有费心去搞过分析器,不过,这对我来说可能是个好主意。
-
@Alex,如果您没有使用分析器或以其他方式测量代码的性能,则不应声称代码对性能至关重要。如答案中所述,您应该使用 List
而不是 Array,但出于可读性/正确性原因,而不是性能原因。 List 已经编写/测试支持调整大小,这与使用 Array 的手工代码不同(不管你有多好)。 -
如果您想知道某行代码是否会对性能产生不利影响,请设定一个客户可以接受的目标,测量代码的性能,看看是否它击败了目标。如果是这样,太好了,你就完成了。如果没有,那就去找一个分析器,找到最慢的东西,然后修复它。在互联网上询问既不了解您的代码,也不了解您的客户的陌生人会占用您编写性能测试的时间。
标签: c# .net arrays performance resize