[Lazarus] RFC: remove StayOnTop for splash screen
Martin
lazarus at mfriebe.de
Mon Mar 1 23:48:12 CET 2010
On 01/03/2010 21:12, Hans-Peter Diettrich wrote:
> Flávio Etrusco schrieb:
>
>> Guess I'll have to do some work in SynEdit then. It used to be my area
>> of expertise after all ;) But the code in Lazarus is a (almost)
>> completely different beast, and maybe not much can be done with
>> codefolding wihout making some concessions...
>
> IMO the IDE should use an cache for the SynEdits, that must contain at
> least the currently active text file. More opened files can be parsed
> and added to the cache later, when they are really activated. When the
> systems runs out of memory, old entries can be removed from the cache.
> Inactive files can be parsed in the background, when the system is idle.
Well there are 2 option. Actually both can exist at the same time.
1) SynEdit scanning on idle. I had that idea for a long time already,
but a lot more needs to change in SynEdit, before this can be done.
2) The IDE only opening a tab, and defer creating the SynEdit. I haven't
looked into this.
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?
Caching, and removing? why re-invent the wheel. It has a similar effect
than the OS doing swaping memory to swap-file...; And you have to keep a
copy of all open files, just in case they get modified on disk, while
they are in memory.
Also having looked at the gprof numbers, the time seems to be lost while
assigning the keycodes. Which seems to be done in a very inefficent
manner. My guess is that the IDE-defaults/user-configs are merged with
the SynEdit defaults, and during this probably each code is tested for
existence (looked up) first, before potentially being added. Given that
there are 100of key combos, which have to be iteraded a 100 times (and
this is for each synedit...) => well (rather not so well).
It get's on the todo list now (but little priority). Maybe creating just
one merged list, and then simply clear+copy for each synedit.
Best Regards
Martin
More information about the Lazarus
mailing list