我正在尝试测试我的 .Net Core 代码的一部分分配了多少内存,并且我提出了两种替代方案,两者都给了我令我困惑的答案。
第一次尝试:
var before = GC.GetTotalMemory(false);
var temp = new char[1];
var total = GC.GetTotalMemory(false) - before;
Console.WriteLine($"Memory allocated in bytes: {total}");
Run Code Online (Sandbox Code Playgroud)
对于 1、100、500 和 1000,我得到 0。对于 10,000,我得到 20048。
第二次尝试:
var before = GC.GetAllocatedBytesForCurrentThread();
var temp = new char[1];
var total = GC.GetAllocatedBytesForCurrentThread() - before;
Console.WriteLine($"Memory allocated in bytes: {total}");
Run Code Online (Sandbox Code Playgroud)
对于 1、100、500、1000 和 10,000,我分别得到 32、224、1024、2024、20024。
我期望的是:2 * 数组长度,因为 sizeof(char) 是 2。
提前致谢
| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |