我正在创建一个应用程序,它在内存中保存大量用户数据,并且它主要是将它保存在List
而且我想知道......
列表效率如何?我可以为每个人获得多少内存开销?(也就是说,除了它们包含的对象之外,还有内存空间)每次实例化时,我需要支付多少惩罚?
有更有效的方法吗?
字典只是HashTables,对吧?或者它们是效率较低的数据结构?
我想使用Arrays,但是我有一个典型的问题就是一直在添加和删除它们,所以不得不增长/缩小它们会很痛苦.
有什么想法/建议吗?
编辑:我知道我的基本数据结构101,以及为什么链接列表更适合添加/删除,而HashTable更适合随机访问.
我最关心的是.Net的idionsyncracies.例如,每个结构浪费了多少内存.浪费时间来初始化/杀死它们.
例如,如果它需要花费大量时间来实例化/ GC列表,但清除它并不多,也许我应该保留一小部分列表等待我,并清除它们并将它们发送回池中完成后,而不是简单地解除引用它们.
或者,如果Hashtables访问速度更快但浪费了大量内存,我可能更喜欢使用Lists并遍历它们,以获得小项目数.
而且我也非常希望专注于内存使用,因为我的应用程序非常耗费内存(想想memcached)...有谁知道我在哪里可以找到这样的信息?