[Lazarus] RFC: remove StayOnTop for splash screen

Mattias Gaertner nc-gaertnma at netcologne.de
Wed Mar 3 09:22:35 CET 2010


On Wed, 03 Mar 2010 04:28:41 +0100
Hans-Peter Diettrich <DrDiettrich1 at aol.com> wrote:

>[...]
> > AFAIK I'm the only one that has provided some profiler output and it
> > showed that the synedit scanner is not a big number. The bigger
> > limitation is the visual controls (pagecontrol, pages).
> 
> In a simple approach the controls should not have any impact on the
> performance. Since the tab clients are all of the same type (SynEdit), a
>   single (visible) client control and a separate tab control would be
> sufficient. When multiple SynEdits are required, all but the active one
> can be hidden (see my notebook-docking approach).

Hmm, this could save some time. I never compared tabcontrol with
synedits and pagecontrol with synedits. Can you create a test app and
time the results? Then we know, if it is worth the effort.

 
> >>> Then again. My PC is about 3 years old, with an average of 10 - 20 
> >>> SynEdits, it takes 1 to 2 seconds of parsing. Opening a 100 files on 
> >>> loading of the IDE may be a legitimate action, and may have good 
> >>> reasons, and certainly can be justified by personal choise => but how 
> >>> many people are affected by it?
> >> That depends on the meaning of "open". The filenames can be imported 
> >> from a project or desktop layout file, into the file pool. Actual 
> >> loading can be deferred until the files really are required in the IDE.
> > 
> > "Open" is here: in the source editor.
> > Of course the IDE handles hundreds or thousands of files in the
> > background.
> 
> What's the difference?

1. some minors like the IDE warns if it is not a text file. 
2. forms are loaded if the options are enabled
3. a synedit is created
4. a page is created

The last point is what Martin and me don't understand. Why not close
files? Who needs this optimization?

 
>[...]
> > They are parsed only once and only because the user wanted the file to
> > be open in the source editor. I still see no reason why someone wants
> > to always open a hundred files in the source editor.
> 
> Me2, but I frequently found 30+ open files when exploring the Lazarus
> project. When the tabs are not closed manually, they will be reopened at
> the next start.

30 files costs a second. Big deal.
The optimization is needed when you open a hundred files on a slow
system. Who needs this?

 
> >> I just don't understand what you mean. The SynEdits should *perform* 
> >> edit commands, but the *detection* of keycodes is the job of the 
> >> framework (IDE).
> > 
> > It does for other commands. And since synedit already can handle
> > keys on its own, the IDE just tells synedit which key code should do
> > what.
> 
> That's not in accordance with MDI nor MVC. You oberserved the overhead
> yourself, that results from a deviation from accepted designs.

The overhead is (or was) a one time initialization function that
costed for 100 files 0.15 seconds. That's why it was not optimized. 


Mattias




More information about the Lazarus mailing list