diff options
author | Siri Hansen <[email protected]> | 2018-01-10 17:49:35 +0100 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2018-01-10 17:49:35 +0100 |
commit | ebc81123499da2e0fa03f8eb989dfeb785a04bd3 (patch) | |
tree | 36e4aee5f84adeb3322956e7a2e40e641b5cb9b9 /lib/observer/src/cdv_detail_wx.erl | |
parent | df8499995b4994d3f85f4b80fc3c2cf941a99cdc (diff) | |
download | otp-ebc81123499da2e0fa03f8eb989dfeb785a04bd3.tar.gz otp-ebc81123499da2e0fa03f8eb989dfeb785a04bd3.tar.bz2 otp-ebc81123499da2e0fa03f8eb989dfeb785a04bd3.zip |
[observer] Improve performance for many links or monitors
When a process has many links and/or monitors, it could earlier take
very long time to display the process information window. This is now
improved by only showing a few links and monitors, and then an link
named "more..." to expand the rest.
Reading of the "Link list" from a crashdump is also improved.
Diffstat (limited to 'lib/observer/src/cdv_detail_wx.erl')
-rw-r--r-- | lib/observer/src/cdv_detail_wx.erl | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/observer/src/cdv_detail_wx.erl b/lib/observer/src/cdv_detail_wx.erl index f6d282638a..6c4739042b 100644 --- a/lib/observer/src/cdv_detail_wx.erl +++ b/lib/observer/src/cdv_detail_wx.erl @@ -48,6 +48,7 @@ init([Id, Data, ParentFrame, Callback, App, Parent]) -> display_progress(ParentFrame,App), case Callback:get_details(Id, Data) of {ok,Details} -> + display_progress_pulse(Callback,Id), init(Id,ParentFrame,Callback,App,Parent,Details); {yes_no, Info, Fun} -> destroy_progress(App), @@ -69,8 +70,16 @@ display_progress(ParentFrame,cdv) -> "Reading data"); display_progress(_,_) -> ok. + +%% Display pulse while creating process detail page with much data +display_progress_pulse(cdv_proc_cb,Pid) -> + observer_lib:report_progress({ok,"Displaying data for "++Pid}), + observer_lib:report_progress({ok,start_pulse}); +display_progress_pulse(_,_) -> + ok. + destroy_progress(cdv) -> - observer_lib:destroy_progress_dialog(); + observer_lib:sync_destroy_progress_dialog(); destroy_progress(_) -> ok. |