创建新列表时,您是否指定初始大小或将其留空?我知道通过指定初始大小,您可以避免每次添加x个项目时列表重新分配底层数组,但您也会为代码增加冗长性。最小的性能增益是否值得增加冗长性和代码复杂度。当列表需要一个更多的项目并且您忘记添加初始化项目时,会发生什么?您仍然会遭受重新分配的性能开销,并且现在该数字可能对新开发人员没有意义。
创建一个新列表
原标题:
问题回答
如果你知道它将如何使用,你应该始终指定一个初始大小,因为 C# 列表的起始大小是四,随着列表增长而增加两倍。这不仅仅是微观优化,因为给 .Net 提示需要很少的努力。可读性也不是问题,尤其是如果你可以避免魔法数字。
如果您无法准确且轻易地预测列表的大小,请不要费力去尝试。
不要围绕着提前确定它而编写任何代码(少的代码==更好的代码)。
另外,倍增法是一种相当有效的方式,可以提高列表的性能增长率。
4 8 16 32 64 128 256 512 1024... 你明白了。
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding