Performance of RDM - again.

avatar

Hi.
The performance of RDM is terrible. Opening the "Properties" of an object takes almost 10 seconds, regardless of the database (SQL Lite or XML).
What can I do with it?
i5-5300U CPU @ 2.30GHz, 16GB RAM and an SSD.
184 Objects, DB cleaned.
On the movie a new DB (xml) with one object.

https://youtu.be/SwpOFjrZsME

Version 2022.3.30.0 64bit

Any help appreciated.
Greets
Tadeusz

All Comments (13)

avatar

Hello,
Could you try to open it a second time? We are aware that the initial opening of the properties takes a long time to open but after that it should be fast. Could you verify if it the case?

By the way, this is something we want to improve in RDM 2023.1.

Regards

David Hervieux

avatar

Hello,
thanks for the quick reply.
Unfortunately, nope. No difference.

https://youtu.be/iQa92Z2tyME

Greets
Tadeusz

avatar

Hello,
Thank you for the video. This is not what I have on my machine and of course it's not the expected behavior. I will ask our support team to verify with you. They will give you the details to open the profiler.

Regards

David Hervieux

avatar

Please try the following:

  1. Help > Profiler
    1. Set "Profiler Level" = 65
    2. Uncheck "Auto Clear"
    3. Right-click > Properties
    4. Cancel
    5. Please send us the profiler trace (example below)
  2. Try the following (this is experimental)
    1. File > Options > Advanced > set the following two settings
    2. forum image
    3. Restart RDM
    4. Is it better? You can perform the steps outline in #1 to see (look for the section FrmConnection.LoadConnectionInControls...)
    5. You reset the options back to Default for both and restart
    6. Did that change anything?


Best regards,

Main thread (UI)
----------------------------------------
RefreshConnections...
    LoadConnections UI - [Microsoft SQL Server : [1] - v14.6.3] - Disabled - 64-bit...
        Engine.Clear - DisposeInternalList - ClearTemplates - ClearRoot : 0 ms
        Reload: False - HasSecurityChanged: True - HasChanged: True
        Engine.Clear - DisposeInternalList - ClearTemplates - ClearRoot : 0 ms
        LoadConnectionsFromDataSource...
            LoadDataSourceSettingsFromDataSource...
                GetDataSourceSettings : 1 ms
            LoadDataSourceSettingsFromDataSource : 1 ms
            GetConnections...
                Database.GetConnections...
                    Reading connections from database : 5 ms
                    DecryptData : 0 ms - Count : 31
                    DeserializeData : 0 ms - Count : 31
                Database.GetConnections : 7 ms
            GetConnections : 7 ms
            DoSetConnections - *** Caching is disabled ***...
                Engine.Clear - DisposeInternalList - ClearTemplates - ClearRoot : 0 ms
            DoSetConnections - *** Caching is disabled *** : 0 ms
        LoadConnectionsFromDataSource : 71 ms
        Load connection overrides...
            Has changes : 2 ms
        Load connection overrides : 2 ms
        FavoriteManager.LoadFolders : 4 ms
    LoadConnections UI - [Microsoft SQL Server : [1] - v14.6.3] - Disabled - 64-bit : 79 ms
RefreshConnections : 82 ms
Connection States: Refresh...
    GetAllConnectionStates : 2 ms
Connection States: Refresh : 2 ms
TreeView.LoadConnectionList...
    BeginUpdate...
        PreCreateGroups : 0 ms - Run count : 1
    BeginUpdate : 1 ms
TreeView.LoadConnectionList : 2 ms
Load Expand States...
    Expanded: 0 - Nodes : 22
    Nodes...
        Expand : 0 ms - Run count : 0
        Collapse : 0 ms - Run count : 0
    Nodes : 0 ms
Load Expand States : 0 ms
FrmConnection.LoadConnectionInControls...
    FrmConnection.freConnectionVPNPanel : 28 ms
    FrmConnection.CreateConnectionSettingsFrame : 115 ms
    FrmConnection.Panels.LoadConnectionInControls : 43 ms
FrmConnection.LoadConnectionInControls : 202 ms
SelectionChanged - Default...
    LoadConnectionDetails : 2 ms
    Finally : 5 ms
SelectionChanged - Default : 8 ms


Stéfane Lavergne

avatar

Re.1

Main thread (UI)
----------------------------------------
16:18:11.940901	FrmConnection.LoadConnectionInControls...
16:18:11.940901	    FrmConnection.freConnectionVPNPanel : 157 ms
16:18:14.209432	    FrmConnection.CreateConnectionSettingsFrame : 2268 ms
16:18:14.469457	    FrmConnection.Panels.LoadConnectionInControls : 258 ms
16:18:14.469457	FrmConnection.LoadConnectionInControls : 2746 ms

Thread : 5
----------------------------------------
5 - 16:17:16.112587	Connection States: Refresh : 5 ms


Probably should I mark something else on the checkbox-list?
Re. 2

Yes, it has changed a lot. Although I still see the white "window build" (then black), between "click" and the build now takes about 2-3 seconds.
Back to defaults - is still "fast" (2-3 sec).

Much better. :)
Thanks.
Tadeusz

avatar

Perfect we will investigate this line is not normal.
FrmConnection.CreateConnectionSettingsFrame : 2268 ms

My trace this line only took 115ms
FrmConnection.CreateConnectionSettingsFrame : 115 ms

Yes, it has changed a lot. Although I still see the white "window build" (then black), between "click" and the build now takes about 2-3 seconds.
Back to defaults - is still "fast" (2-3 sec).

Wow, you're the third client that tells us toggling those values on/off improved the performance. In all honesty we have no clue why (yet)? When set to the non-default value, we call a method into our third-party UI control library. The odd thing is once they've been called once, things are faster even if they are not called on subsequent restarts of RDM (set to default).

Best regards,

Stéfane Lavergne

avatar

Are you sill see slowness on this line:
FrmConnection.CreateConnectionSettingsFrame : 2268 ms

If you edit a different entry type, say RDP instead of SSH, are the profiler traces about the same?

Best regards,

Stéfane Lavergne

avatar

Oh, sorry for the delay... I thought the thread is already closed, but I was only logged off...
Hi.
RDP-Connection, first try:

Main thread (UI)
----------------------------------------
10:35:59.212033	FrmConnection.DoInitializeComponent : 1911 ms
10:35:59.430025	FrmConnection.LoadConnectionInControls...
10:35:59.430025	    FrmConnection.LoadGroups : 2 ms
10:35:59.499045	    FrmConnection.freConnectionVPNPanel : 66 ms
10:35:59.501024	    FrmConnection.freConnectionSecurityGeneralPanel : 1 ms
10:35:59.865366	    FrmConnection.CreateConnectionSettingsFrame : 364 ms
10:36:00.111152	    FrmConnection.Panels.LoadConnectionInControls : 228 ms
10:36:00.112143	FrmConnection.LoadConnectionInControls : 803 ms

Second try:

10:37:51.241615	FrmConnection.LoadConnectionInControls...
10:37:51.241615	    FrmConnection.freConnectionVPNPanel : 37 ms
10:37:51.524544	    FrmConnection.CreateConnectionSettingsFrame : 282 ms
10:37:51.635348	    FrmConnection.Panels.LoadConnectionInControls : 109 ms
10:37:51.635348	FrmConnection.LoadConnectionInControls : 467 ms


Third:
Main thread (UI)
----------------------------------------

10:38:28.116623	FrmConnection.LoadConnectionInControls...
10:38:28.116623	    FrmConnection.freConnectionVPNPanel : 48 ms
10:38:28.481844	    FrmConnection.CreateConnectionSettingsFrame : 365 ms
10:38:28.582420	    FrmConnection.Panels.LoadConnectionInControls : 99 ms
10:38:28.582420	FrmConnection.LoadConnectionInControls : 562 ms


And then SSH:

Main thread (UI)
----------------------------------------
10:38:57.676461	FrmConnection.LoadConnectionInControls...
10:38:57.676461	    FrmConnection.freConnectionVPNPanel : 74 ms
10:38:58.202756	    FrmConnection.CreateConnectionSettingsFrame : 525 ms
10:38:58.326809	    FrmConnection.Panels.LoadConnectionInControls : 122 ms
10:38:58.326809	FrmConnection.LoadConnectionInControls : 781 ms
10:39:09.447995	SelectionChanged - Default...
10:39:09.447995	    LoadConnectionDetails...
10:39:09.447995	        LoadConnectionInControls:FreConnectionDashBoard : 1 ms
10:39:09.447995	    LoadConnectionDetails : 10 ms
10:39:09.463003	    Finally : 14 ms
10:39:09.463003	SelectionChanged - Default : 25 ms
10:39:13.232436	FrmConnection.DoInitializeComponent : 1973 ms
10:39:13.398753	FrmConnection.LoadConnectionInControls...
10:39:13.398753	    FrmConnection.freConnectionVPNPanel : 53 ms
10:39:18.493253	    FrmConnection.CreateConnectionSettingsFrame : 5094 ms
10:39:18.665747	    FrmConnection.Panels.LoadConnectionInControls : 168 ms
10:39:18.665747	FrmConnection.LoadConnectionInControls : 5356 ms


Greets.

avatar

While I continue the investigation, can you please try run the OptimizeRDM.bat batch file, located in the install directory? This will call ngen (see link) on RemoteDesktopManager.exe and pre-compile all referenced assemblies for faster startup times.

It's a long shot but it's worth giving it a try. FYI, the installer (.msi/.exe) calls the batch file after the installation.

Stéfane Lavergne

avatar

Hello.
There is not .bat but ps1. It's took 00:00:08.8976050.
RDM start a bit faster. SSH-Session Properties (first, second and thirtd opening):

Main thread (UI)
----------------------------------------
13:51:46.456200	FrmConnection.DoInitializeComponent : 1423 ms
13:51:46.699430	FrmConnection.LoadConnectionInControls...
13:51:46.699430	    FrmConnection.freConnectionVPNPanel : 51 ms
13:51:51.131589	    FrmConnection.CreateConnectionSettingsFrame : 4432 ms
13:51:51.289694	    FrmConnection.Panels.LoadConnectionInControls : 148 ms
13:51:51.290713	FrmConnection.LoadConnectionInControls : 4743 ms
13:52:06.727793	FrmConnection.LoadConnectionInControls...
13:52:06.727793	    FrmConnection.freConnectionVPNPanel : 33 ms
13:52:07.500333	    FrmConnection.CreateConnectionSettingsFrame : 772 ms
13:52:07.590229	    FrmConnection.Panels.LoadConnectionInControls : 89 ms
13:52:07.590229	FrmConnection.LoadConnectionInControls : 942 ms
13:52:15.149809	FrmConnection.LoadConnectionInControls...
13:52:15.149809	    FrmConnection.freConnectionVPNPanel : 37 ms
13:52:15.944596	    FrmConnection.CreateConnectionSettingsFrame : 794 ms
13:52:16.042915	    FrmConnection.Panels.LoadConnectionInControls : 97 ms
13:52:16.042915	FrmConnection.LoadConnectionInControls : 971 ms


Greets.
(Shouldn't I get an email when there is a response here?)

avatar
There is not .bat but ps1. It's took 00:00:08.8976050.

My bad, I forgot when had changed to the file from .bat to .ps1

RDM start a bit faster. SSH-Session Properties (first, second and third opening):

I'm still somewhat concerned with the following:
13:51:51.131589 FrmConnection.CreateConnectionSettingsFrame : 4432 ms

13:52:07.500333 FrmConnection.CreateConnectionSettingsFrame : 772 ms

13:52:15.944596 FrmConnection.CreateConnectionSettingsFrame : 794 ms
We do some control caching so it's normal that it's faster after the first call. What I don't understand is why the first call takes 4.4 seconds. I tweaked the profiling in the next version v2022.3.36 if we build one and in the next release v2023.1) this should shed more light on the issue but won't fix it unfortunately.

(Shouldn't I get an email when there is a response here?)

Yes, you should. I've asked the team to verify if your email address is getting blocked. Please also check your spam folder.

Best regards,

Stéfane Lavergne

avatar

Okay, so I'm waiting for new Version of RDM and then we're going on with the profiling.
It's not a big problem. After first setup, properties are rare used.
And another problem, probably unsolvable, it is autofill for (sh*tty) Web-GUIs (i.e. esxi-login-screen). But it's another Thread.
Thanks.

Tadeusz
PS. Actually I have the Mails from Devolutions (in Mailbox), but none on my Android-Phone. WTF? Nothing in SPAM. Simply filtered.

avatar

Hi. Next Thing. Duplicate.

Main thread (UI)
----------------------------------------
12:38:59.922624	FrmConnection.DoInitializeComponent : 3964 ms
12:39:00.443626	FrmConnection.LoadConnectionInControls...
12:39:00.443626	    FrmConnection.freConnectionVPNPanel : 299 ms
12:39:02.913631	    FrmConnection.CreateConnectionSettingsFrame : 2469 ms
12:39:03.194629	    FrmConnection.Panels.LoadConnectionInControls : 273 ms
12:39:03.194629	FrmConnection.LoadConnectionInControls : 3131 ms

Opened Properties, IP and Name changed. "OK" pressed.

12:39:16.707290	Database.SaveConnection : 29 ms
12:39:16.791286	RefreshConnections...
12:39:16.791286	    LoadConnections UI - [SQLite : Lokale Datenquelle] - Disabled - 64-bit...
12:39:16.791286	        Engine.Clear - DisposeInternalList - ClearTemplates - ClearRoot : 0 ms
12:39:16.791286	        Reload: False - HasSecurityChanged: True - HasChanged: True
12:39:16.791286	        Engine.Clear - DisposeInternalList - ClearTemplates - ClearRoot : 0 ms
12:39:16.803293	        LoadConnectionsFromDataSource...
12:39:16.803293	            LoadDataSourceSettingsFromDataSource...
12:39:16.803293	                GetDataSourceSettings : 7 ms
12:39:16.803293	            LoadDataSourceSettingsFromDataSource : 7 ms
12:39:16.813286	            GetConnections...
12:39:16.813286	                Database.GetConnections...
12:39:16.813286	                    Reading connections from database : 7 ms
12:39:16.815287	                    DecryptData : 0 ms - Count : 188
12:39:16.829288	                    DeserializeData : 13 ms - Count : 188
12:39:16.834297	                Database.GetConnections : 30 ms
12:39:16.834297	            GetConnections : 30 ms
12:39:16.834297	            DoSetConnections - *** Caching is disabled ***...
12:39:16.834297	                Engine.Clear - DisposeInternalList - ClearTemplates - ClearRoot : 0 ms
12:39:16.835296	            DoSetConnections - *** Caching is disabled *** : 1 ms
12:39:16.836293	        LoadConnectionsFromDataSource : 44 ms
12:39:16.837294	        FavoriteManager.LoadFolders : 1 ms
12:39:16.838298	    LoadConnections UI - [SQLite : Lokale Datenquelle] - Disabled - 64-bit : 47 ms
12:39:16.839290	RefreshConnections : 47 ms
12:39:16.864285	TreeView.LoadConnectionList...
12:39:16.864285	    BeginUpdate...
12:39:16.864285	        LoadConnectionInTreeNode : 3 ms
12:39:16.864285	        PreCreateGroups : 0 ms - Run count : 1
12:39:16.864285	    BeginUpdate : 25 ms
12:39:16.864285	TreeView.LoadConnectionList : 25 ms
12:39:16.873285	Load Expand States...
12:39:16.873285	    Expanded: 4 - Nodes : 188
12:39:16.874286	    Nodes...
12:39:16.874286	        Expand : 0 ms - Run count : 1
12:39:16.874286	        Collapse : 0 ms - Run count : 11
12:39:16.874286	    Nodes : 0 ms
12:39:16.874286	Load Expand States : 0 ms
12:39:16.947287	TreeView.LoadConnectionList...
12:39:16.947287	    BeginUpdate...
12:39:16.947287	        LoadConnectionInTreeNode : 1 ms
12:39:16.947287	        PreCreateGroups : 0 ms - Run count : 1
12:39:16.947287	    BeginUpdate : 18 ms
12:39:16.947287	TreeView.LoadConnectionList : 18 ms
12:39:16.955290	Load Expand States...
12:39:16.955290	    Expanded: 4 - Nodes : 188
12:39:16.956288	    Nodes...
12:39:16.956288	        Expand : 0 ms - Run count : 1
12:39:16.956288	        Collapse : 0 ms - Run count : 11
12:39:16.956288	    Nodes : 0 ms
12:39:16.956288	Load Expand States : 0 ms

What happen here? 15 Seconds!

12:39:31.870658	SelectionChanged - Default...
12:39:31.870658	    LoadConnectionDetails : 8 ms
12:39:31.884660	    Finally : 13 ms
12:39:31.884660	SelectionChanged - Default : 22 ms

Done. New Entry visible.


Greets.