Once your application is in the background it becomes fair game for being 
terminated. So even if you're using a very reasonable mount of RAM, if you're 
in the background you can expect that if some other application needs the 
memory your application will be terminated.

--
David Duncan @ My iPhone

> On Oct 8, 2014, at 2:06 AM, Gerriet M. Denkmann <gerr...@mdenkmann.de> wrote:
> 
> 
>> On 8 Oct 2014, at 13:42, Quincey Morris 
>> <quinceymor...@rivergatesoftware.com> wrote:
>> 
>> (reposted after editing for length)
>> 
>>> On Oct 7, 2014, at 22:12 , Gerriet M. Denkmann <gerr...@mdenkmann.de> wrote:
>>> 
>>> Is there a way for the app to find out how much memory it is currently 
>>> using?
>> 
>> Here’s my take on this, which may be way off base:
>> 
>> There’s really no practical way to answer such questions any more. The way 
>> memory is managed is so varied, so diffused that even if you could get an 
>> answer, it would be as likely to lead you astray as to help you.
>> 
>> In practice, I think the question is not how much memory your app is using, 
>> but how fast your memory use is increasing over time.
>> 
>> If it’s not increasing over time
> It's not. Checked also with Leaks Instrument.
>> ― then you have a fairly easy evaluation. Your app fits (in the foreground) 
>> or it crashes. Your app retreats gracefully (to the background) or it’s 
>> terminated.
> It runs in the foreground. But when in background it sometimes gets 
> terminated.
> 
>> 
>>> When I have a file of 100 KB and do:
>>>    myData = [NSData dataWithContentsOfFile:options:error: ];
>>>    myBytes = myData.bytes;
>>> how much Ram am I now using? 100 KB or 200 KB? I.e. does "bytes" just 
>>> return a pointer to some internal structure in NSData?
>>> 
>>> Would options = NSDataReadingMappedIfSafe be of some help?
>> 
>> The general answer is that you don’t know how much it’s using. In practice, 
>> the answer used to be 100KB (“bytes” returned an interior pointer). But this 
>> isn’t always true any more. GCD data blocks, which can be bridged to NSData, 
>> can come in pieces, and in that case “bytes” may copy the data into 
>> contiguous memory.
>> 
>> Mapped data might help in common cases, but how does this save you from “it 
>> fits or it crashes” when the file turns out to be on a non-local file 
>> system, on which mapping doesn’t work? Memory mapping is more about 
>> performance than size, perhaps.
> 
> I made a small iOS app which has just 3 buttons: 
> Data (loads NSData from file, which resides in the app bundle)
> Bytes (which uses myData.bytes)
> Count (which sums all bytes in myData)
> 
> Result with NSDataReadingMappedIfSafe, Persistent Bytes in Instruments, 
> Allocations:
> No change with any button (always ca. 3.5 MB).
> Data button takes 1 msec, Bytes 73 μsec, first Count takes 250 msec longer 
> than subsequent Counts.
> 
> Without NSDataReadingMappedIfSafe:
> Data button increases Ram use by 15 MB (about size of file); takes 250 msec.
> Bytes, Count: no change. Bytes takes 13 μsec. All Counts take same time (ca. 
> 50 msec).
> 
> So NSDataReadingMappedIfSafe seems to be a good idea (at least in my case of 
> a fixed file in the app bundle).
> 
> 
>> You can easily use a construct like GCD semaphores...
> 
> Sounds too much work for now. Maybe to be considered later. Thanks for your 
> ideas though.
> 
> 
> Kind regards,
> 
> Gerriet.
> 
> 
> _______________________________________________
> 
> 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/david.duncan%40apple.com
> 
> This email sent to david.dun...@apple.com

_______________________________________________

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