Stefan Krah <ste...@bytereef.org> added the comment: > For large allocations, you'll probably be better off implementing your own > aligned allocator on top of calloc than implementing your own calloc on top > of an aligned allocator. (It's O(1) overhead versus O(n).) And once you're > doing that you might want to use the same code for regular allocations too, > so that you don't need to keep track of whether each memory block used > aligned_calloc or aligned_malloc and can treat them the same... Depends on > your exact circumstances.
Yes, but if the whole array is initialized with actual values, then the memset() overhead is not very large (something like 16% here). If uninitialized (or very sparse), the overhead is of course gigantic. What is more, in some crude tests the posix_memalign() performance isn't that great compared to malloc()/calloc(). C11 aligned_alloc() is also quite a bit faster than posix_memalign() here. I think you're right that a hand-rolled solution on top of calloc() is best for my use case. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue18835> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com