copy-on-write, performance, and code readability

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?

답변 (2개)

Muneef
Muneef 2013년 11월 26일

0 개 추천

so are you using struct. inside a function?

댓글 수: 1

matal
matal 2013년 11월 26일
yes - is the code sample unclear somehow? let me know.

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

카테고리

도움말 센터File Exchange에서 Structures에 대해 자세히 알아보기

제품

질문:

2013년 11월 26일

답변:

2013년 11월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by