Skip to content

inaccel/numpy-allocator

Repository files navigation

Memory management in NumPy*

Binder PyPI version

*NumPy is a trademark owned by NumFOCUS.

Customize Memory Allocators

Α metaclass is used to override the internal data memory routines. The metaclass has four optional fields:

>>> import ctypes >>> import ctypes.util >>> import numpy_allocator >>> my = ctypes.CDLL(ctypes.util.find_library('my')) >>> class my_allocator(metaclass=numpy_allocator.type): ... _calloc_ = ctypes.addressof(my.calloc_func) ... _free_ = ctypes.addressof(my.free_func) ... _malloc_ = ctypes.addressof(my.malloc_func) ... _realloc_ = ctypes.addressof(my.realloc_func) ...

An example using the allocator

>>> import numpy as np >>> with my_allocator: ... a = np.array([1, 2, 3]) ... >>> my_allocator.handles(a) True

About

Configurable memory allocations

Topics

Resources

License

Stars

Watchers

Forks