Mattias Gaertner schrieb:
With multiple editor windows, the files must be kept (and parsed...) in
their own pool, separate from the SynEdit viewers.
Why do you think this is needed?
For simplicity, when multiple SynEdits can show the same file.
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).
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?
Even if newer machines have enough power to process a huge number of
files within a few seconds, I'd take care for users with old equipment -
who else would do, if not Lazarus? Virtual machines also can have less
RAM, and performance can become very poor once such a system starts
swapping.
The source editor mem to disk ratio is about 1:6. For example opening
5mb (150kloc) of sources needs 30mb of RAM.
That looks acceptable, also on small systems.
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.
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.
DoDi
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus