Profile and debug load function

조회 수: 1 (최근 30일)
Jan Kappen
Jan Kappen 2024년 2월 18일
댓글: Jan Kappen 2024년 2월 27일
I have a .mat file containing an object of a custom Matlab class that mainly consists of a big data table of type table, stored in one of the class' properties. The table contains ~20k rows and contains datetime, double, categorical arrays, and objects of class idnlarx, i.e. estimated nonlinear nlarx models.
The mat file is 520 MB in size (mat file v7 with enabled compression, v7.3 makes the size 10x) and takes between 240 and 290 seconds to load.
I'm trying to speed up the loading process which is clearly CPU bound. I think the problem is the idnlarx model which utilizes most of the space (> 1 GB when loaded to RAM and instantiated).
And I'd like to understand what takes so much time to load, but the profiler only shows this:
...
That means, 94% are self-time of the load function.
How do I find out what takes so long?
Thanks,
Jan

답변 (1개)

Matt J
Matt J 2024년 2월 18일
편집: Matt J 2024년 2월 18일
You could pursue your hypothesis by extracting the table from an object, then saving the idnlarx column to its own .mat file. Then, you could check how much time it takes to load back in. I suspect your hypothesis is correct, however, because I routinely load .mat files that are ~500 MB and, while it takes some time, it is nowhere near a minute long, let alone 4 minutes.
  댓글 수: 8
Matt J
Matt J 2024년 2월 26일
편집: Matt J 2024년 2월 26일
According to your original post, the idnlarx objects are members of your custom class. It is that class whose saveobj/loadobj method I am suggesting you customize, not the internal loadobj method of idnlarx. Transform the idnlarx members into something simpler and more compact, something which can be used to rebuild the original idnlarx memebrs later.
Jan Kappen
Jan Kappen 2024년 2월 27일
Understood. And that's where I struggle since I can't access the internals of idnlarx to rebuild the original idnlarx objects later. At least its constructor does not let me set all class properties to rebuild and I can't set them from "outside", because they are read only.
But I'll investigate, maybe there are other ways to serialize/deserialize.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Nonlinear ARX Models에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by