[Groonga-commit] groonga/groonga at 1ecc874 [master] index_column_diff: show memory usage in progress

Back to archive index
Kouhei Sutou null+****@clear*****
Tue Mar 19 15:11:11 JST 2019


Kouhei Sutou	2019-03-19 15:11:11 +0900 (Tue, 19 Mar 2019)

  Revision: 1ecc874a3cf0e9eefe0d53d9200a8d3d8ebb3f6d
  https://github.com/groonga/groonga/commit/1ecc874a3cf0e9eefe0d53d9200a8d3d8ebb3f6d

  Message:
    index_column_diff: show memory usage in progress

  Modified files:
    lib/index_column.c

  Modified: lib/index_column.c (+29 -2)
===================================================================
--- lib/index_column.c    2019-03-19 15:10:54 +0900 (51b6c5877)
+++ lib/index_column.c    2019-03-19 15:11:11 +0900 (cb4c33d30)
@@ -336,6 +336,26 @@ grn_index_column_diff_format_time(grn_ctx *ctx,
   }
 }
 
+static double
+grn_index_column_diff_format_memory(grn_ctx *ctx,
+                                    uint64_t usage,
+                                    const char **unit)
+{
+  if (usage < 1024) {
+    *unit = "B";
+    return usage;
+  } else if (usage < (1024 * 1024)) {
+    *unit = "KiB";
+    return usage / 1024.0;
+  } else if (usage < (1024 * 1024 * 1024)) {
+    *unit = "MiB";
+    return usage / 1024.0 / 1024.0;
+  } else {
+    *unit = "GiB";
+    return usage / 1024.0 / 1024.0 / 1024.0;
+  }
+}
+
 static void
 grn_index_column_diff_progress(grn_ctx *ctx,
                                grn_index_column_diff_data *data)
@@ -380,10 +400,16 @@ grn_index_column_diff_progress(grn_ctx *ctx,
     grn_index_column_diff_format_time(ctx,
                                       current_interval_seconds,
                                       &interval_unit);
+  const char *memory_unit = NULL;
+  const double memory_usage =
+    grn_index_column_diff_format_memory(ctx,
+                                        grn_memory_get_usage(ctx),
+                                        &memory_unit);
+
   GRN_LOG(ctx,
           data->progress.log_level,
           "[index-column][diff][progress] "
-          "%*u/%u %3.0f%% %.2f%s/%.2f%s %2.2f%s(%.2frecords/s)",
+          "%*u/%u %3.0f%% %.2f%s/%.2f%s %.2f%s(%.2frecords/s) %.2f%s",
           data->progress.n_records_digits,
           i,
           n_records,
@@ -391,7 +417,8 @@ grn_index_column_diff_progress(grn_ctx *ctx,
           elapsed_time, elapsed_unit,
           remained_time, remained_unit,
           interval_time, interval_unit,
-          throughput);
+          throughput,
+          memory_usage, memory_unit);
   data->progress.previous_time = current_time;
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20190319/1ea95c12/attachment-0001.html>


More information about the Groonga-commit mailing list
Back to archive index