Pointers on Memory Management Success
Memory management for embedded systems boils down to gaining maximum application performance from a scarce system resource: random access memory (RAM).
McObject, developer of the eXtremeDB in-memory database, was founded to provide tiny-footprint, real-time database system software for embedded applications. To offer a full-featured database that can run in a digital audio player or mobile phone, we’ve crafted innovative techniques for efficiently using RAM.
These memory management tricks have across-the-board applicability to embedded software development. Whether you develop consumer electronics, on-board automotive or industrial control systems, haven’t you wanted to do more with limited RAM, or reduce the memory required in an embedded device?
If so, check out the articles below, written by McObject’s top engineers to encapsulate some of our approaches to efficient memory management. And don’t hesitate to download our eXtremeDB or Perst databases, to see the product of these techniques.
Memory Management and Embedded Databases, from Dr. Dobb’s Journal, offers a primer on different types of custom memory allocator that can replace prohibitively expensive (in performance terms) general-purpose allocators, such as the Windows C runtime or glibc allocator. Generally speaking, allocators keep track of which parts of memory are used and which are free. The design goal of any allocator is to minimize wasted memory space, balancing the amount of wasted space against the processing time required to recover it.
Why do some multi-threaded applications actually slow down when deployed on multi-core systems? The article Tackling Memory Allocation in Multi-core and Multi-threaded Applications examines this phenomenon, and offers a solution. The article’s “thread local allocator” approach to multi-threaded, multi-processor memory management avoids locking conflicts and can greatly reduce system latency.
While myriad vendors offer database systems for Java and for embedded systems, object-oriented databases for Sun’s Java Micro Edition (Java ME, also known as J2ME) have been conspicuously lacking. That’s because certain Java ME characteristics present obstacles to OO database memory management functions including garbage collection and object caching. In Developing an Object-oriented Database for J2ME-based Embedded Devices, McObject’s team describes solutions to these barriers used in developing the Perst Lite open source, object-oriented embedded database for Java ME.
The data managment experts at McObject’s Web site also offers white papers and Webinars on topics ranging from real-time database systems to database API comparisons to embedded data management in specific applications including set-top boxes, IP routers, and military and aerospace systems.
Watch the on-demand Webinar: Fault-Tolerant Memory Management for Mission Critical Embedded Systems
McObject’s site also offers the following software downloads: