在Julia中逐行检查内存分配

时间:2018-01-10 03:14:58

标签: memory julia profile

我想检查代码的每一行中的内存分配。我使用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)是什么意思?

我输入的代码内存不足,我知道内存分配有问题,如何逐行检查内存分配?

1 个答案:

答案 0 :(得分:6)

  

可以使用@time@allocated来衡量分配总量,并且通常可以通过这些行产生的垃圾收集成本从分析中推断出触发分配的特定行。

     

但是,有时直接测量每行代码分配的内存量会更有效。

  

要逐行测量分配,请使用--track-allocation=<setting>命令行选项启动Julia。

     

当您退出Julia时,累积结果将写入文件名后面附加.mem的文本文件,与源文件位于同一目录中。

     

每行列出分配的总字节数。