On Jul 4, 2016, at 7:37 PM, Quincey Morris 
<quinceymor...@rivergatesoftware.com> wrote:
> 
> I think the only way the allocator will know if the requested memory is 
> available to this app is to try writing to it. I dunno what the C language 
> experts think, but this suggests to me that you could try using calloc 
> instead for exactly that reason. It’d be a lot slower for large memory 
> blocks, but if it returns nil on failure to write then that should be what 
> you want to know.

Actually, this is false — see the link I just sent to Dmitry:

https://developer.apple.com/library/prerelease/content/documentation/Performance/Conceptual/ManagingMemory/Articles/MemoryAlloc.html#//apple_ref/doc/uid/20001881-98355

a large calloc() is preferred because it simply allocates uninitialized address 
space which is zeroed by the VM system automatically when accessed.

But (and this answer may answer Dmitry’s question) calloc/malloc only allocates 
the address space — the actually failure may not occur until you run out of 
swap space.

I think there may be more information in the guidelines, but don’t have time to 
re-read the full document at the moment.

Dmitry, you should.

HTH,

-Steve

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (Xcode-users@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com

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

Reply via email to