On 13/08/2011 08:23, Ludo Brands wrote:
as for apples and bananas:

gvim does only open about 10 tabs !!!! not one tab per file.
At least my
installation. I can not open more tabs, or access any other
than the 10
tabs. I can from the buffer menu change the content of each tab, but
that's still only 10 tabs.

That obviously explains the bulk of the time difference. However, I think
this is something we can learn from. Does lazarus have to load (+ highlight
+ ...) the files that are in tabs that are not even on the screen? Why not
fe. load in the editor only the files in tabs initially visible (after
startup/load project) and the others when tab actually opened (not when
scrolling the tabs, but when selecting a tab).
That actually happens.

That explains the difference, between loading 450 files from command line (27 secs) and the same 450 files as part of "project1 session" (16 secs) It appears, that the "lock" responsible for this, only occurs during opening the project (which is the common way in lazarus anyway), but not during loading files from command line.

Lazarus defers the scan for highlight+folding (one and the same) as well as finding the longest line (required for horiz scrollbar). Both of them are done once lazarus is fully operational, within idle, or if the tab is selected.
I realize for laptop user, the "idle operation" is undesired...

I do not know if Codetool scans are deferred however. (but afaik, codetools do scan on request)

I do believe (comparing with gvim and MSEide) that simply opening 450 tabs (even without content) may take some deal of the time (I have not tested that). It would explain at least some of the difference: gvim not opening tabs / MSEide does not use the widgetset, hence it doesn't need to allocate handles for each tab (I guess)

Again 450 files, is a benchmark only usage. Comparing against editors that skip the actions of the benchmark is no use. Comparing with geany, we actually look decent. And I don't even know if geany has something like codetools...


  Similarly, unchanged files in
editor tabs not opened since, say an hour, could be unloaded from the editor
and free up some memory. In practice, on low memory system, these pages are
already swapped to disk.
Which means unloading them, would actually be contra-productive. As you would access the memory to free it, and have to swap it in from disk. If the memory isn't touched then it want hurt anyone.



--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to