Thanks - sorry I missed it in the first mail for some reason.

An interesting thread. This remark from Quinn stood out for me:

"If you stop issuing new requests, NSURL{Session,Connection} quickly recovers 
this memory to the point where, at the end of a cycle like this, the memory use 
(as shown by Allocations) is pretty much the same as when you started (a 
generational analysis shows just a few KiB of growth).  So the problem here is 
not a leak, or even abandoned memory, but rather a delay in recovering memory."

This could be what I'm seeing as well, since as a stream is downloaded, each 
chunk is pretty much requested as soon as the previous one completes, and is 
triggered by that completion (though I am rescheduling it on the main thread, 
which in turn adds it to the session's operation queue).

What's not clear is what is needed to cause the memory recovery to occur. I 
presume that invalidating the session will do that, but that isn't appropriate 
for in-between chunks.

I'll look into this angle and see if I can prove anything. If so, I'll file a 
radar and hope it comes back as dupe, fix imminent :) (though I won't be 
holding my breath)

--Graham






> On 13 Jan 2015, at 2:01 pm, Roland King <r...@rols.org> wrote:
> 
> https://devforums.apple.com/message/1056669#1056669
> 
> No that one from the same mail. 
> 
> 
> 
> On 13 Jan 2015, at 10:51, Graham Cox <graham....@bigpond.com> wrote:
> 
>> 
>>> On 13 Jan 2015, at 12:21 pm, Roland King <r...@rols.org> wrote:
>>> 
>>> Did you read the devforums thread I pointed you at a couple of weeks ago?
>> 
>> 
>> Umm, not sure Roland. I read the blog post by bbum about using Allocations, 
>> which is the one you linked in this thread. Did you mean something else? 
>> Forgive me, I can't locate the link if so.
>> 
>> If you're referring to bbum's post, I read that. I'm assuming that 
>> "heapshot" is now labelled "mark generations" but otherwise is the same 
>> thing. The problem with this in my case is that a "generation" is a new URL 
>> download and that's fired off automatically by either the previous one 
>> completing or a timer that's set to a variable time based on the "target 
>> time" of the playlist entry. There's no clear means for me to hit "mark 
>> generation" at exactly the right time. That might not matter all that much 
>> in that the process is continuous, so as long as I'm downloading a stream at 
>> a fairly steady rate, and hit the button at regular intervals, there should 
>> be a reasonable similarity between runs.
>> 
>> Doing that, I get inconclusive results. Most of the memory that is left is 
>> like this:
>> 
>> Snapshot            Timestamp        Growth    # Persistent
>> Generation B        01:32.780.375        2.09 MB    38
>> VM: Performance tool data            2.08 MB    4
>>  0x116816000    01:13.421.801    532.00 KB     
>>  0x1162ed000    01:32.145.259    532.00 KB     
>>  0x116140000    01:23.051.011    532.00 KB     
>>  0x1161e5000    01:02.847.030    532.00 KB     
>> 
>> 
>> Which suggests it's memory allocated by Allocations itself.
>> 
>> But where I'm checking this over longer time periods isn't in Instruments at 
>> all, but in Xcode's memory viewer. Unfortunately that doesn't give me a 
>> breakdown, just an overall usage.
>> 
>> --Graham
>> 
>> 


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to