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!