From c3bda162cbd9f3b8250ac105597fe9a56212aa96 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 29 May 2023 01:44:57 +0200 Subject: [PATCH] DRC: Added 'write' method to output channels, enabling GC in profile mode to get a more realistic memory usage picture --- src/drc/drc/built-in-macros/_drc_engine.rb | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/drc/drc/built-in-macros/_drc_engine.rb b/src/drc/drc/built-in-macros/_drc_engine.rb index 8493bbf85..ea2ebb3d6 100644 --- a/src/drc/drc/built-in-macros/_drc_engine.rb +++ b/src/drc/drc/built-in-macros/_drc_engine.rb @@ -32,6 +32,9 @@ module DRC def finish(final) # reimplement end + def write + # reimplement + end def layout nil end @@ -58,6 +61,10 @@ module DRC end def finish(final, view) + write + end + + def write if @file_name opt = RBA::SaveLayoutOptions::new gzip = opt.set_format_from_filename(@file_name) @@ -101,14 +108,18 @@ module DRC end def finish(final, view) + write + if final && view + view.show_rdb(@rdb_index, view.active_cellview_index) + end + end + + def write if @file_name rdb_file = @engine._make_path(@file_name) @engine.info("Writing report database: #{rdb_file} ..") @rdb.save(rdb_file) end - if final && view - view.show_rdb(@rdb_index, view.active_cellview_index) - end end def rdb @@ -2372,7 +2383,7 @@ CODE t.start self._process_events - if @force_gc || Time::now - @time > 0.5 + if @force_gc || Time::now - @time > 0.5 || @profile GC.start # force a garbage collection before the operation to free unused memory @time = Time::now end