Elephant has been designed to slot into any application easily, regardless of what platform you are developing on and takes only a few minutes to integrate with its’ simple API.
Once integrated, Elephant helps ensure that your application runs within memory budgets and allows you to implement just about any memory strategy you need. It can allocate across a range of memory areas, from a basic allocation scheme to one that can be used from system to VRAM.
Unlike most standard allocation systems, Elephant deals with a system’s native alignment requirements without wasting memory. If the system needs memory to be aligned on 64k boundaries it will do so and it will make sure it doesn’t waste any in between.
Because Elephant is heap based you can get the most out of the system by changing system modes, where available, giving your game a performance increase that a standard system doesn’t easily achieve. Our support can help you with this.
Elephant features many things:
Compare the performance of Elephant against some other allocators here or click on the image.
Elephant is a high performance, best-fit memory allocator specially designed for today’s multi-core processors. Compared to some of the alternatives Elephant's design really comes into its own, whether you are only targeting a single threaded program or taking full advantage of multiple threads, Elephant can really be seen to make a difference to your games performance.
Elephant also performs as well or better than our competitors with regards to fragmentation.
We have compared two popular allocators to give you an idea of how Elephant could improve your performance. Click on the image to the left to see some performance results.
10 Second Memory
Elephant comes with Goldfish, a tool which aids in exploring and debugging memory in your game. Goldfish allows you to view every single allocation and possible fragment in your application to help you track the errors that are harder to find from within your main development program. You can compare memory dumps to track down any memory leaks and track memory operations over a time period to find out where your high water marks occur.
Goldfish can also dissect your application to track the memory you didn’t even know you had lost with global and static variable and monitor code size.
Elephant allows total customization of each memory heap you create. If you want one heap to only allow 64k alignment in 64k blocks it will do that while allowing a different form elsewhere. Do you want that heap to only allow allocations during load time? Well you can tell Elephant to do that as well. Perhaps you require memory in a certain area to be write combined? Elephant can do that too.
Tracking bugs in memory can be hard and time consuming. Elephant features various methods to combat memory leaks and buffer overruns without any complex external procedures. Various levels of tracking can be employed which even be run in real time, often without any noticeable performance penalties. This ensures the errors are caught as they happen, not the night before Master.