copy-on-write, performance, and code readability
조회 수: 3 (최근 30일)
이전 댓글 표시
I use a global, multi-level nested struct() to hold a lot of data. For example, I have:
global DATA;
DATA.US.AAPL.date = <array of dates>
DATA.US.AAPL.px = <array of prices>
Exactly why I am using a structure like this or what I am storing in it is not relevant for this question. Above is just an example.
Inside of functions that operate on this structure, I often create an "alias":
function m = doStuff(region,ticker)
global DATA;
ldata = DATA.(region).(ticker);
<work on and possibly update ldata>
DATA.(region).(ticker) = ldata;
end
It's obvious that using an alias like ldata improves readability - however this appears to come at a cost. When DATA is large, replace ldata with direct DATA.(region).(ticker) leads to material performance improvement.
Presumably, the Matlab copy-on-write semantics is somehow to blame here.
Any thoughts as to how I can get readability and performance?
댓글 수: 0
답변 (2개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!