Sorry this may be quite basic but just wanted to confirm it:
Let's say that I have a proc which generates a large dict and returns
it. Then when used, the caller assigns it to a variable.
How much memory is used, 10mb or 20mb? (let's ignore any extra memory
needed to manage the dict structure and the proc calls).
proc generate_10mb_dict {a b c} {
# generate a large dict, in d
return $d
}
set my_data [generate_10mb_dict $a $b $c]
what is the ram use at this point?
Given your sample code, the usage is the amount taken up by the dict.
If the dict is 10mb (as you suggest) then after "set my_data" the ram
usage is 10mb.
On 8/8/2024 4:27 PM, Rich wrote:
Given your sample code, the usage is the amount taken up by the dict.
If the dict is 10mb (as you suggest) then after "set my_data" the ram
usage is 10mb.
Thank you!
d and a are reference counted.
Now, dict item a and b are differently and thus b is copied.
Anyway, it is endlessly complicated...
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 970 |
Nodes: | 10 (2 / 8) |
Uptime: | 104:35:05 |
Calls: | 12,740 |
Calls today: | 2 |
Files: | 186,574 |
Messages: | 3,171,655 |