Index: /trunk/include/VBox/vmm/stam.h
===================================================================
--- /trunk/include/VBox/vmm/stam.h	(revision 92386)
+++ /trunk/include/VBox/vmm/stam.h	(revision 92387)
@@ -202,4 +202,6 @@
     /** Count of bytes. */
     STAMUNIT_BYTES,
+    /** Count of bytes per call. */
+    STAMUNIT_BYTES_PER_CALL,
     /** Count of bytes. */
     STAMUNIT_PAGES,
@@ -1314,4 +1316,6 @@
 VMMR3DECL(int)  STAMR3Enum(PUVM pUVM, const char *pszPat, PFNSTAMR3ENUM pfnEnum, void *pvUser);
 VMMR3DECL(const char *) STAMR3GetUnit(STAMUNIT enmUnit);
+VMMR3DECL(const char *) STAMR3GetUnit1(STAMUNIT enmUnit);
+VMMR3DECL(const char *) STAMR3GetUnit2(STAMUNIT enmUnit);
 
 /** @} */
Index: /trunk/src/VBox/VMM/VMMR3/STAM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/STAM.cpp	(revision 92386)
+++ /trunk/src/VBox/VMM/VMMR3/STAM.cpp	(revision 92387)
@@ -2462,7 +2462,9 @@
 
             uint64_t u64 = pDesc->u.pProfile->cPeriods ? pDesc->u.pProfile->cPeriods : 1;
-            pArgs->pfnPrintf(pArgs, "%-32s %8llu %s (%12llu ticks, %7llu times, max %9llu, min %7lld)\n", pDesc->pszName,
+            pArgs->pfnPrintf(pArgs, "%-32s %8llu %s (%12llu %s, %7llu %s, max %9llu, min %7lld)\n", pDesc->pszName,
                              pDesc->u.pProfile->cTicks / u64, STAMR3GetUnit(pDesc->enmUnit),
-                             pDesc->u.pProfile->cTicks, pDesc->u.pProfile->cPeriods, pDesc->u.pProfile->cTicksMax, pDesc->u.pProfile->cTicksMin);
+                             pDesc->u.pProfile->cTicks, STAMR3GetUnit1(pDesc->enmUnit),
+                             pDesc->u.pProfile->cPeriods, STAMR3GetUnit2(pDesc->enmUnit),
+                             pDesc->u.pProfile->cTicksMax, pDesc->u.pProfile->cTicksMin);
             break;
         }
@@ -3000,4 +3002,5 @@
         case STAMUNIT_COUNT:                return "count";
         case STAMUNIT_BYTES:                return "bytes";
+        case STAMUNIT_BYTES_PER_CALL:       return "bytes/call";
         case STAMUNIT_PAGES:                return "pages";
         case STAMUNIT_ERRORS:               return "errors";
@@ -3021,4 +3024,65 @@
 }
 
+
+/**
+ * For something per something-else unit, get the first something.
+ *
+ * @returns Pointer to read only unit string.
+ * @param   enmUnit     The unit.
+ */
+VMMR3DECL(const char *) STAMR3GetUnit1(STAMUNIT enmUnit)
+{
+    switch (enmUnit)
+    {
+        case STAMUNIT_NONE:                 return "";
+        case STAMUNIT_CALLS:                return "calls";
+        case STAMUNIT_COUNT:                return "count";
+        case STAMUNIT_BYTES:                return "bytes";
+        case STAMUNIT_BYTES_PER_CALL:       return "bytes";
+        case STAMUNIT_PAGES:                return "pages";
+        case STAMUNIT_ERRORS:               return "errors";
+        case STAMUNIT_OCCURENCES:           return "times";
+        case STAMUNIT_TICKS:                return "ticks";
+        case STAMUNIT_TICKS_PER_CALL:       return "ticks";
+        case STAMUNIT_TICKS_PER_OCCURENCE:  return "ticks";
+        case STAMUNIT_GOOD_BAD:             return "good";
+        case STAMUNIT_MEGABYTES:            return "megabytes";
+        case STAMUNIT_KILOBYTES:            return "kilobytes";
+        case STAMUNIT_NS:                   return "ns";
+        case STAMUNIT_NS_PER_CALL:          return "ns";
+        case STAMUNIT_NS_PER_OCCURENCE:     return "ns";
+        case STAMUNIT_PCT:                  return "%";
+        case STAMUNIT_HZ:                   return "Hz";
+
+        default:
+            AssertMsgFailed(("Unknown unit %d\n", enmUnit));
+            return "(?unit?)";
+    }
+}
+
+
+/**
+ * For something per something-else unit, get the something-else.
+ *
+ * @returns Pointer to read only unit string.
+ * @param   enmUnit     The unit.
+ */
+VMMR3DECL(const char *) STAMR3GetUnit2(STAMUNIT enmUnit)
+{
+    switch (enmUnit)
+    {
+        case STAMUNIT_TICKS_PER_CALL:       return "calls";
+        case STAMUNIT_NS_PER_CALL:          return "calls";
+        case STAMUNIT_BYTES_PER_CALL:       return "calls";
+        case STAMUNIT_TICKS_PER_OCCURENCE:  return "times";
+        case STAMUNIT_NS_PER_OCCURENCE:     return "times";
+        case STAMUNIT_NONE:                 return "times";
+        case STAMUNIT_GOOD_BAD:             return "bad";
+        default:
+            AssertMsgFailed(("Wrong unit %d\n", enmUnit));
+            return "times";
+    }
+}
+
 #ifdef VBOX_WITH_DEBUGGER
 
