Pointers on Memory Management Success
Successful 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 a free trial of 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 management experts at McObject also offer 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.
White Papers for Professional Developers
We have been testing, improving on, and retesting our software from the beginning in 2001 in order to provide our clients with the best possible data management solutions. Read “Database Persistence, Without The Performance Penalty” and more.
Review our research
Webinars for Professional Developers
Watch to on-demand Webinars, hosted by experts, about proven database management system practices. Watch “Eliminating Database Corruption“. Or, “Embedded Databases: Make or Break Technology Choices for High Performance Applications” and others.
Review our list of Webinars
Free trial software
The eXtremeDB hybrid database system offers the strengths of the on-disk and all-in-memory approaches to data management in a single database system.