accumulating projects in kate lead to excessive kate startup time due to git

Dominik Haumann dhaumann at gmail.com
Thu Jun 23 13:00:40 BST 2022


With respect to using sshfs: the only thing I could imagine is to use
KMountPoint::probablySlow() and then exclude projects that are located on a
network drive.

See:
https://api.kde.org/frameworks/kio/html/classKMountPoint.html#a8f99e2505a979ed8e589af0ea068a355

We'd need an additional checkbox for disabling auto-reloading of remote
projects.
This would be an addition to
https://invent.kde.org/utilities/kate/-/merge_requests/672


Greetings
Dominik


On Sun, Jun 19, 2022 at 9:27 PM Elv1313 <elv1313 at gmail.com> wrote:

> Hi,
>
> I just want to say this bug can be a little more annoying when using
> sshfs. Most of my $dayjob work is done over `sshfs` because the development
> environment is just a remote VM with everything setup properly and exposes
> an LSP "server" and ssh. Doing many IO on that is rather expensive (hello
> git!). I don't think parallelism would make the situation better. Async is
> really the best option here. As for "why sshfs and not kio". That's because
> of 2 things. First, kio+yubikey = get_a_popup_for_every_io_operation. That
> would be rather invasive to fix (maybe adding some middleware/proxy process
> that keeps a persistent ssh connection and Kio connects to that?). Also,
> there's a little limitation in Kate LSP implementation. When using Kio, it
> adds `fish://totally/wrong/path` to the LSP queries and the "server"
> doesn't understand it. The $dayjob provided LSP expects either macOS or
> Linux home directory paths and the project name (which it assumes is
> sshfs-mounted).
>
> On Sun, 19 Jun 2022 at 12:10, Milian Wolff <mail at milianw.de> wrote:
>
>> On Samstag, 18. Juni 2022 14:15:42 CEST Milian Wolff wrote:
>> > Hey all,
>> >
>> > Kate took ~4s to show its main window on my beefy workstation with lots
>> of
>> > RAM, CPUs and speedy NVME disks. I found this quite odd and wondered
>> about
>> > the reason so I sat down and profiled it. Perf shows a lot of external
>> git
>> > processes running sequentially, which I could also replicate with
>> strace:
>>
>> <snip>
>>
>> > b) Can we query the git status in parallel for all projects, instead of
>> > serially? My machine has 12 cores and 24 threads, and the NVME disk and
>> ram
>> > should also allow this.
>>
>> Sorry, hit sent too early...
>>
>> You can download the perfparser file here:
>>
>> https://milianw.de/files/kate.slow.startup.perfparser
>>
>> You can open that in hotspot and then go to the off-CPU time flame graph.
>> Basically all of that comes from _really_ slow memory allocations, which
>> is a
>> first for me. It seems like my system is suffering from some extreme
>> slowdowns
>> in `int_malloc` - but only in kate. Other applications don't show this
>> behavior, and I'm unsure where this comes from... See the excessively
>> slow
>> calls to rwsem_down_read_slowpath from _int_malloc, even in the main
>> thread.
>> If you look at the main thread e.g. there we see ~1s off cpu time from
>> _int_realloc by _FcConfigParse::FcStrBufData alone!
>>
>> I'll try to continue to figure this out
>> --
>> Milian Wolff
>> mail at milianw.de
>> http://milianw.de
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwrite-devel/attachments/20220623/fd273573/attachment.htm>


More information about the KWrite-Devel mailing list