第一张图片中使用的记忆工具来自Rider.据我所知,它显示了对托管堆的分配.第二幅图显示了BenchmarkDotNet的结果.
为什么Rider显示已经进行了分配,而BenchmarkDotNet表明没有对堆进行分配?
如果我改用下面的代码示例,BenchmarkDotNet将获得分配:
var i = new int[0];
Array.Empty指向框架已经静态分配的数组(参见here).
Array.Empty
当您调用new int[0]时,实际上会为您分配一个大小为0的新array.
new int[0]
另见本answer.
快速上手Kotlin开发 -〔张涛〕
白话法律42讲 -〔周甲徳〕
iOS开发高手课 -〔戴铭〕
深入浅出计算机组成原理 -〔徐文浩〕
Flutter核心技术与实战 -〔陈航〕
分布式技术原理与算法解析 -〔聂鹏程〕
软件设计之美 -〔郑晔〕
张汉东的Rust实战课 -〔张汉东〕
基于人因的用户体验设计课 -〔刘石〕
搞定音频技术 -〔冯建元 〕
李智慧 · 高并发架构实战课 -〔李智慧〕
结构会议力 -〔李忠秋〕
无涯教程 - Clojure教程
无涯教程 - MariaDB教程
无涯教程 - 批处理教程
无涯教程 - Dart教程
无涯教程 - Python Web Scraping教程
无涯教程 - HTML5教程
无涯教程 - LibTorch教程
无涯教程 - SEO教程教程