LinuxMalinfo.h 755 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef ANKI_UTIL_LINUXMALINFO_H
  2. #define ANKI_UTIL_LINUXMALINFO_H
  3. #if defined(PLATFORM_LINUX)
  4. # include <malloc.h>
  5. typedef struct mallinfo Mallinfo;
  6. inline Mallinfo GetMallInfo()
  7. {
  8. return mallinfo();
  9. }
  10. inline void printMallInfo(const Mallinfo& minfo)
  11. {
  12. PRINT("used:" << minfo.uordblks << " free:" << minfo.fordblks <<
  13. " total:" << minfo.arena);
  14. }
  15. inline void printMallInfoDiff(const Mallinfo& prev, const Mallinfo& now)
  16. {
  17. Mallinfo diff;
  18. diff.uordblks = now.uordblks-prev.uordblks;
  19. diff.fordblks = now.fordblks-prev.fordblks;
  20. diff.arena = now.arena-prev.arena;
  21. printMallInfo(diff);
  22. }
  23. # define MALLINFO_BEGIN Mallinfo __m__ = GetMallInfo();
  24. # define MALLINFO_END printMallInfoDiff(__m__, GetMallInfo());
  25. #endif
  26. #endif