我想检查代码的每一行中的内存分配。我使用class TestData
{
[JsonProperty(???)] // I need to apply property only at this level.
public List<Row> rows;
}
// this class is being used by other APIs.
class Row
{
public string myString { get; set; }
// this will have int, string, 'decimal' types. Decimal type gets auto converted to Double and gets rounded
public List<dynamic> values { get; set; }
}
,我得到了
@time
5.381438 seconds (2.19 M allocations: 809.021 MiB, 1.08% gc time)
是什么意思?
我输入的代码内存不足,我知道内存分配有问题,如何逐行检查内存分配?
答案 0 :(得分:6)
可以使用
@time
和@allocated
来衡量分配总量,并且通常可以通过这些行产生的垃圾收集成本从分析中推断出触发分配的特定行。但是,有时直接测量每行代码分配的内存量会更有效。
要逐行测量分配,请使用
--track-allocation=<setting>
命令行选项启动Julia。当您退出Julia时,累积结果将写入文件名后面附加
.mem
的文本文件,与源文件位于同一目录中。每行列出分配的总字节数。