Opened 5 years ago

Closed 4 years ago

#1972 closed enhancement (done)

The TypeSelector dialog takes too long to show

Reported by: abeham Owned by: gkronber
Priority: highest Milestone: HeuristicLab 3.3.10
Component: PluginInfrastructure Version: 3.3.7
Keywords: Cc:

Description

When creating a new user-defined algorithm and adding a LookupParameter<T>, the time to wait until one can select a certain type for T is too long. I measured the "Select Type of Generic Type Parameter" dialog to appear after 30 seconds on my notebook. The second time is faster (3 seconds), I grant, but if you open the dialog for creating parameters in a different view, it takes 30 seconds again. While waiting HL appears frozen as the operation blocks the UI thread.

Attachments (1)

type discovery caching.patch (13.9 KB) - added by gkronber 4 years ago.
Path for caching of assemblies in type discovery

Download all attachments as: .zip

Change History (14)

comment:1 Changed 4 years ago by abeham

  • Component changed from ### Undefined ### to PluginInfrastructure
  • Owner changed from swagner to gkronber

comment:2 Changed 4 years ago by ascheibe

Possible duplicate of #1907

comment:3 Changed 4 years ago by ascheibe

  • Owner changed from gkronber to architects
  • Status changed from new to assigned

comment:4 Changed 4 years ago by gkronber

  • Owner changed from architects to gkronber
  • Priority changed from high to highest

Two ideas from our discussions:

  • types can be discovered (asynchronously?) at start-up and then be cached by the plug-in infrastructure
  • only assemblies belonging to plug-ins should be searched for HL types (currently, all types in all loaded assemblies are searched, including framework-assemblies)

comment:5 Changed 4 years ago by gkronber

The profiler showed that interestingly the problem is not type discovery but the ImageList used in the TypeSelector!

comment:6 Changed 4 years ago by gkronber

  • Milestone changed from HeuristicLab 3.3.x Backlog to HeuristicLab 3.3.10
  • Status changed from assigned to accepted

comment:7 Changed 4 years ago by gkronber

r10497: workaround to improve performance of type selector (the problem is that imagelist methods are SLOW)

comment:8 Changed 4 years ago by gkronber

  • Owner changed from gkronber to abeham
  • Status changed from accepted to reviewing

After r10497 "Select Type of Generic Type Parameter" dialog takes around 1sec to appear on my workstation.

Changed 4 years ago by gkronber

Path for caching of assemblies in type discovery

comment:9 Changed 4 years ago by gkronber

I also attached a patch for the plugin infrastructure to cache assemblies for type discovery. However, after the simple change in the TypeSelector (r10497) the effect of further changes in the plugin infrastructure is negligible.

comment:10 Changed 4 years ago by abeham

This is much faster now, great!

comment:11 Changed 4 years ago by abeham

  • Summary changed from Types should be discovered faster to The TypeSelector dialog takes too long to show

Ticket title update

comment:12 Changed 4 years ago by mkommend

  • Owner changed from abeham to gkronber
  • Status changed from reviewing to readytorelease

comment:13 Changed 4 years ago by gkronber

  • Resolution set to done
  • Status changed from readytorelease to closed

r10647: merged r10497 from trunk to stable.

Note: See TracTickets for help on using tickets.