[Libreoffice-commits] online.git: common/Util.cpp common/Util.hpp kit/Kit.cpp

Pranav Kant pranavk at collabora.co.uk
Fri Jan 26 14:34:03 UTC 2018


 common/Util.cpp |   26 ++++++++++++++++++++++++++
 common/Util.hpp |    3 +++
 kit/Kit.cpp     |    6 +++---
 3 files changed, 32 insertions(+), 3 deletions(-)

New commits:
commit c16d1985604940c2f35e49ac27a63d973a2a65ea
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Fri Jan 26 20:02:09 2018 +0530

    Print humanized bytes in the logs
    
    Change-Id: I2ebdea0c3a360be1573ae13fa9cbe6f432436f29

diff --git a/common/Util.cpp b/common/Util.cpp
index 72c150a4..f8c493b9 100644
--- a/common/Util.cpp
+++ b/common/Util.cpp
@@ -170,6 +170,32 @@ namespace Util
         return nullptr;
     }
 
+    std::string getHumanizedBytes(unsigned long nBytes)
+    {
+        constexpr unsigned factor = 1024;
+        short count = 0;
+        float val = nBytes;
+        while (val >= factor && count < 4) {
+            val /= factor;
+            count++;
+        }
+        std::string unit;
+        switch (count)
+        {
+        case 0: unit = ""; break;
+        case 1: unit = "ki"; break;
+        case 2: unit = "Mi"; break;
+        case 3: unit = "Gi"; break;
+        case 4: unit = "Ti"; break;
+        default: assert(false);
+        }
+
+        unit += "B";
+        std::stringstream ss;
+        ss << std::fixed << std::setprecision(1) << val << ' ' << unit;
+        return ss.str();
+    }
+
     size_t getTotalSystemMemoryKb()
     {
         size_t totalMemKb = 0;
diff --git a/common/Util.hpp b/common/Util.hpp
index b4eb3504..5118efb6 100644
--- a/common/Util.hpp
+++ b/common/Util.hpp
@@ -97,6 +97,9 @@ namespace Util
 #endif
     }
 
+    /// Print given number of bytes in human-understandable form (KB,MB, etc.)
+    std::string getHumanizedBytes(unsigned long nBytes);
+
     /// Returns the total physical memory (in kB) available in the system
     size_t getTotalSystemMemoryKb();
 
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 4d054427..f38af663 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -2103,17 +2103,17 @@ void lokit_main(const std::string& childRoot,
 
         rlimit rlim = { 0, 0 };
         if (getrlimit(RLIMIT_AS, &rlim) == 0)
-            LOG_INF("RLIMIT_AS is " << rlim.rlim_max << " bytes.");
+            LOG_INF("RLIMIT_AS is " << Util::getHumanizedBytes(rlim.rlim_max) << " (" << rlim.rlim_max << " bytes)");
         else
             LOG_SYS("Failed to get RLIMIT_AS.");
 
         if (getrlimit(RLIMIT_STACK, &rlim) == 0)
-            LOG_INF("RLIMIT_STACK is " << rlim.rlim_max << " bytes.");
+            LOG_INF("RLIMIT_STACK is " << Util::getHumanizedBytes(rlim.rlim_max) << " (" << rlim.rlim_max << " bytes)");
         else
             LOG_SYS("Failed to get RLIMIT_STACK.");
 
         if (getrlimit(RLIMIT_FSIZE, &rlim) == 0)
-            LOG_INF("RLIMIT_FSIZE is " << rlim.rlim_max << " bytes.");
+            LOG_INF("RLIMIT_FSIZE is " << Util::getHumanizedBytes(rlim.rlim_max) << " (" << rlim.rlim_max << " bytes)");
         else
             LOG_SYS("Failed to get RLIMIT_FSIZE.");
 


More information about the Libreoffice-commits mailing list