首页 > Windows开发 > 详细

C#new出来的结构体内存分配在堆上

时间:2018-09-11 23:23:10      阅读:948      评论:0      收藏:0      [点我收藏+]

如题,有同事说因为结构体是值类型,所以 new出来的也是分配在栈上的。我的直觉是但凡使用new的东西都在堆上分配内存,除非C#对结构体做了特殊处理。

new int[10]这个说明不了什么,因为数组是引用类型,必然在堆上分配。

如何验证?

利用UNITY的profiler来观察内存变化 :new 一个内存占用很大的结构体,比如80M,看GC ALLOC 突现了80M,说明确实是在堆上分配的。然后GC掉,多次重复现象相同。

C#new出来的结构体内存分配在堆上

原文:https://www.cnblogs.com/timeObjserver/p/9630885.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!