Rein Achten(deleted)
|
[QNX7] Memory allocation performance problems
|
Rein Achten(deleted)
10/20/2017 8:51 AM
post118132
|
[QNX7] Memory allocation performance problems
Hi,
In porting an existing application to QNX 7, we are facing memory allocation performance problems that seem to be
specific to QNX 7 (potentially only 64-bit). Our application heavily uses dynamic memory allocations in a multithreaded
environment. These memory allocations do not appear a bottleneck when running on QNX 6.6 or on Linux-based platforms.
Please find attached a simple test program that showcases the problem. The test program spawns a configurable amount of
threads and measures the amount of time it takes for each thread to allocate / deallocate a predefined simple object for
a configurable amount of times.
I've run this test program on the following configurations:
- Qualcomm S820 ADP (aarch64) running QNX7. BSP acquired from Qualcomm.
- TI DRA746 (armv7le) running QNX6.6. BSP preinstalled.
- Intel NUC running QNX7 (x86_64). BSP built using QNX 7 SDP.
- Intel NUC running Ubuntu 14.04.
Both QNX7-based platforms perform really lousy when looking at memory allocation performance. The Intel NUC running
Ubuntu and the TI DRA746 running QNX 6.6 show that the relation between the memory allocation performance and the number
of threads is negligible. However, this was different for the QNX7-based platforms:
- The Qualcomm S820 ADP shows an almost linear relation between the memory allocation performance and the amount of
threads.
- The Intel NUC running QNX7 shows dramatic results when the amount of threads exceeds the amount of CPU cores somehow.
Next to the simple test program, please find attached the raw results in text form and in a graph (I left out the QNX7
Intel NUC results because they mess up the graph).
Conclusion for us is that QNX7 somehow performs badly when looking at memory allocation performance. Hence, some
questions I was hoping to get some help with:
- Is this a known problem? If so, is it being fixed?
- Is this inherent to QNX7's new memory manager?
Thanks,
Rein
|
|
|