我试图了解C#.NET 4.0 List< T>(initSize)如何分配内存.

我的问题是我有一个List< foo> class foo需要至少20个字节的内存.我有两种情况,我最终会得到foo的X或X 60元素.我不知道在分配时间它会是哪两种情况.

由于X大于36,000个元素,我正在尝试最小化不必要的内存分配,如果可以避免,我不想为一个List分配两次.我的理解是分配的大小(36k元素* 4B引用?= 144kB)推动大堆上的分配.添加到我的困境是我有一个字典< key,List< foo>>大约有4,000个元素.

我的问题:

> C#运行时是否分配超出初始指定容量的数量?例如,如果我初始化为36,000个条目,我是否真的分配了65,536个条目,因为2的下一个幂大于36,000?

>我是否应该在所有情况下分配到X 60而不是X以避免第二次分配?在这种情况下,60恰好是一个不变的恒定值.

我的问题很相似,但与以下内容不同:

c# list 容量_c# – 列出具有初始容量的内存分配相关推荐

  1. java stringbuffer长度_java – 具有极大变化长度的输入的最佳StringBuffer初始容量是多少?...

    这里有两个因素:时间和内存消耗.时间主要受调用java.lang.AbstractStringBuilder.expandCapacity()的次数的影响.当然,每次调用的成本与缓冲区的当前大小成线性 ...

  2. java容量_Java集合类初始容量、加载因子、扩容增量

    当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低. 加载因 ...

  3. Java集合篇:集合细节:为集合指定初始容量、asList的缺陷、subList的缺陷

    一.为集合指定初始容量: 集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许).当这个海.容器的量变得非常大的时候 ...

  4. Java中的ArrayList的初始容量和容量分配

    List接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素. ArrayList继承于List接口,除继承过来的方法外,还提供一些方法来操作内部用来存储列表的数组的 ...

  5. 阿里巴巴Java开发手册建议设置HashMap的初始容量,但设置多少合适呢?

    作者 l Hollis 来源 l Hollis(ID:hollischuang) 集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定 ...

  6. 对HashMap数据结构的理解——加载因子和初始容量

    先看源码: 解释一下位移运算: 1<<4 是位移运算的表示,为十进制16 1的二进制表示:1 左移4位之后的二进制表示为B(10000) = D(16) 更简单的计算方法就是 1<& ...

  7. 为什么HashMap默认初始容量为2次幂?不是2次幂会怎样?讲讲 HashMap 扰动函数?

    关于HashMap的详解文章请移步: 链接: HashMap源码研究--源码一行一行的注释 文章目录 为什么初始容量是 2次幂? 如果指定了不是2的次幂的容量会发生什么? 有一个初始容量参数的构造方法 ...

  8. Java源码HashMap、ConcurrentHashMap:JDK1.8HashMap静态常量以及设置的目的,初始容量、最大容量、扩容缩容树化条件

    HashMap核心源码 作为工作中最重要.最常用的容器之一,当然还是要自己动手写一篇 HashMap 的源码解析来加深对其的印象咯,而且它的设计与实现 也有很多值得学习的地方. 以下包含HashMap ...

  9. 【226期】面试问我,HashMap 的默认初始容量是多少,我该怎么说?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...

最新文章

  1. eyoucmsPHP企业网站内容管理系统
  2. CentOs7下systemd管理知识要点
  3. 自主定义适合自己的Keil主题
  4. Mysql Incorrect string value问题解决
  5. MyEclipse连接MySQL的方法
  6. 人为漏洞的构造、文件的载入、验证机制的突破
  7. Oozie 3.3.1安装
  8. php处理post表单数据,php – Httpful post表单数据
  9. 7.数电复刻 之 门电路
  10. python的计算_python计算smoothed PSSM(二)
  11. 学生证选课系统c语言大作业,学生选课管理系统c语言程序
  12. 手把手教你如何用Python从PDF文件中导出数据(附链接)
  13. 简历背景图片设置html代码,怎么在简历中添加背景图片
  14. 自动读取短信中心号码
  15. Docker 容器技术(史上最强总结)
  16. SEO巧妙运用方法分享
  17. 转载:GPS卫星 星历与历书的区别(为了方便在navcen官网下载GPS历书后不知道具体含义的)
  18. 重要接口部件——SRAM
  19. linux select函数返回值,socket中的select函数使用
  20. php程序主入口,主:(index.php)入口

热门文章

  1. Strust2用户注册,使用token防止刷新重复提交
  2. xdf文件转换成pdf在线_在线PDFtodoc转换器智能转换PDF文件
  3. request用法_虚拟语气的用法十一个考点:怎么考都在这里打转
  4. filebeat配置参数_filebeat配置详解
  5. 产品入门一——十分钟读懂产品经理
  6. Oracle 拼音码函数
  7. Rolling cURL: PHP并发最佳实践
  8. Mac OSX操作系统安装和配置Zend Server 6教程(1)
  9. ​MobileViT 它来了!Apple 提出轻量、通用、适用于移动设备的Transformer!
  10. PyTorch如何加速数据并行训练?分布式秘籍大揭秘