[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwrite-devel
Subject:    Re: accumulating projects in kate lead to excessive kate startup time due to git
From:       Waqar Ahmed <waqar.17a () gmail ! com>
Date:       2022-06-18 14:49:17
Message-ID: CAPesRH6NszMw=ncDFwY7VUgaxfmFE_rj9567BtLsePuwPmo=Cw () mail ! gmail ! com
[Download RAW message or body]

The problem with anon sessions that I face currently :

- I want to work on a project Y, I open it
- Later, I want to open another folder in Kate for a moment in a separate
instance, I do kate -n XXX. Kate opens with both projects loaded. This is
not obvious, and one only starts to realize that things are not working
well till you have a lot of projects opened. This affects a lot of features
such as quick open, search etc.

So basically, opening a folder temporarily is now an annoyance as it is not
temporary anymore. One has to remember to close it or kate just keeps
accumulating them silently.

If this was trivial, it would have been okay, but it's not and it breaks
the usecase I mentioned above.



On Sat, Jun 18, 2022, 7:33 PM Christoph Cullmann (cullmann.io) <
christoph@cullmann.io> wrote:

> On 2022-06-18 14:38, Waqar Ahmed wrote:
> > This is a result of a recent feature we added, i.e., a project is
> > saved when you close Kate, and restored when you reopen.
> >
> > This is okay if one uses named sessions. Named sessions need to be
> > opened explicitly. However, for anon sessions, this was a bad idea and
> > is a constant annoyance.
> >
> > It's fixed in a way that we added an option to disable project
> > restoration(upcoming release). But I think for anon sessions projects
> > should never be stored in the first place.
>
> Hi,
>
> yes, I added that option to disable it for that reason.
>
> Not sure about the anon session, we store there other stuff, too.
>
> But it would make sense to try to optimize the behavior,
> the project loading itself should be async, does the GitWidget
> trigger the sync git calls?
>
> Greetings
> Christoph
>
> >
> > Waqar
> >
> > On Sat, Jun 18, 2022, 5:16 PM Milian Wolff <mail@milianw.de> 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:
> >>
> >> ```
> >> $ strace -o kate.process.log -f --timestamps -e process kate
> >> $ grep -E "execve.*git" kate.process.log  | wc
> >> 159
> >> ```
> >>
> >> See also: https://invent.kde.org/-/snippets/2234
> >>
> >> The reason, it turns out, was that my kate accumulated a lot of
> >> projects, and
> >> all of them got queried for their git status.
> >>
> >> I hope that you all agree that this isn't acceptable. The question
> >> now becomes
> >> how to resolve this:
> >>
> >> a) I never knowingly opened a project in kate, this is all done
> >> automatically
> >> in the background. Is it expected that I should manually cleanup the
> >> project
> >> list then? Or can this be done automatically, e.g. by marking
> >> projects as
> >> unused after some time when we don't open a file in them in the last
> >> week or
> >> something like that?
> >>
> >> 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.
> >>
> >> Thanks
> >>
> >> PS: For now, I manually closed all projects and now have a fast kate
> >> startup
> >> once again.
> >>
> >> --
> >> Milian Wolff
> >> mail@milianw.de
> >> http://milianw.de
>
> --
> Ignorance is bliss...
> https://cullmann.io | https://kate-editor.org
>

[Attachment #3 (text/html)]

<div dir="auto"><div>The problem with anon sessions that I face currently :</div><div \
dir="auto"><br></div><div dir="auto">- I want to work on a project Y, I open it  \
</div><div dir="auto">- Later, I want to open another folder in Kate for a moment in \
a separate instance, I do kate -n XXX. Kate opens with both projects loaded. This is \
not obvious, and one only starts to realize that things are not working well till you \
have a lot of projects opened. This affects a lot of features such as quick open, \
search etc.  </div><div dir="auto"><br></div><div dir="auto">So basically, opening a \
folder temporarily is now an annoyance as it is not temporary anymore. One has to \
remember to close it or kate just keeps accumulating them silently.  </div><div \
dir="auto"><br></div><div dir="auto">If this was trivial, it would have been okay, \
but it&#39;s not and it breaks the usecase I mentioned above.  </div><div \
dir="auto"><br></div><div dir="auto"><br><br><div class="gmail_quote" dir="auto"><div \
dir="ltr" class="gmail_attr">On Sat, Jun 18, 2022, 7:33 PM Christoph Cullmann (<a \
href="http://cullmann.io">cullmann.io</a>) &lt;<a \
href="mailto:christoph@cullmann.io">christoph@cullmann.io</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex">On 2022-06-18 14:38, Waqar Ahmed \
wrote:<br> &gt; This is a result of a recent feature we added, i.e., a project is<br>
&gt; saved when you close Kate, and restored when you reopen.<br>
&gt; <br>
&gt; This is okay if one uses named sessions. Named sessions need to be<br>
&gt; opened explicitly. However, for anon sessions, this was a bad idea and<br>
&gt; is a constant annoyance.<br>
&gt; <br>
&gt; It&#39;s fixed in a way that we added an option to disable project<br>
&gt; restoration(upcoming release). But I think for anon sessions projects<br>
&gt; should never be stored in the first place.<br>
<br>
Hi,<br>
<br>
yes, I added that option to disable it for that reason.<br>
<br>
Not sure about the anon session, we store there other stuff, too.<br>
<br>
But it would make sense to try to optimize the behavior,<br>
the project loading itself should be async, does the GitWidget<br>
trigger the sync git calls?<br>
<br>
Greetings<br>
Christoph<br>
<br>
&gt; <br>
&gt; Waqar<br>
&gt; <br>
&gt; On Sat, Jun 18, 2022, 5:16 PM Milian Wolff &lt;<a href="mailto:mail@milianw.de" \
target="_blank" rel="noreferrer">mail@milianw.de</a>&gt; wrote:<br> &gt; <br>
&gt;&gt; Hey all,<br>
&gt;&gt; <br>
&gt;&gt; Kate took ~4s to show its main window on my beefy workstation with<br>
&gt;&gt; lots of<br>
&gt;&gt; RAM, CPUs and speedy NVME disks. I found this quite odd and wondered<br>
&gt;&gt; about the<br>
&gt;&gt; reason so I sat down and profiled it. Perf shows a lot of external<br>
&gt;&gt; git<br>
&gt;&gt; processes running sequentially, which I could also replicate with<br>
&gt;&gt; strace:<br>
&gt;&gt; <br>
&gt;&gt; ```<br>
&gt;&gt; $ strace -o kate.process.log -f --timestamps -e process kate<br>
&gt;&gt; $ grep -E &quot;execve.*git&quot; kate.process.log   | wc<br>
&gt;&gt; 159<br>
&gt;&gt; ```<br>
&gt;&gt; <br>
&gt;&gt; See also: <a href="https://invent.kde.org/-/snippets/2234" rel="noreferrer \
noreferrer" target="_blank">https://invent.kde.org/-/snippets/2234</a><br> &gt;&gt; \
<br> &gt;&gt; The reason, it turns out, was that my kate accumulated a lot of<br>
&gt;&gt; projects, and<br>
&gt;&gt; all of them got queried for their git status.<br>
&gt;&gt; <br>
&gt;&gt; I hope that you all agree that this isn&#39;t acceptable. The question<br>
&gt;&gt; now becomes<br>
&gt;&gt; how to resolve this:<br>
&gt;&gt; <br>
&gt;&gt; a) I never knowingly opened a project in kate, this is all done<br>
&gt;&gt; automatically<br>
&gt;&gt; in the background. Is it expected that I should manually cleanup the<br>
&gt;&gt; project<br>
&gt;&gt; list then? Or can this be done automatically, e.g. by marking<br>
&gt;&gt; projects as<br>
&gt;&gt; unused after some time when we don&#39;t open a file in them in the last<br>
&gt;&gt; week or<br>
&gt;&gt; something like that?<br>
&gt;&gt; <br>
&gt;&gt; b) Can we query the git status in parallel for all projects, instead<br>
&gt;&gt; of<br>
&gt;&gt; serially? My machine has 12 cores and 24 threads, and the NVME disk<br>
&gt;&gt; and ram<br>
&gt;&gt; should also allow this.<br>
&gt;&gt; <br>
&gt;&gt; Thanks<br>
&gt;&gt; <br>
&gt;&gt; PS: For now, I manually closed all projects and now have a fast kate<br>
&gt;&gt; startup<br>
&gt;&gt; once again.<br>
&gt;&gt; <br>
&gt;&gt; --<br>
&gt;&gt; Milian Wolff<br>
&gt;&gt; <a href="mailto:mail@milianw.de" target="_blank" \
rel="noreferrer">mail@milianw.de</a><br> &gt;&gt; <a href="http://milianw.de" \
rel="noreferrer noreferrer" target="_blank">http://milianw.de</a><br> <br>
-- <br>
Ignorance is bliss...<br>
<a href="https://cullmann.io" rel="noreferrer noreferrer" \
target="_blank">https://cullmann.io</a> | <a href="https://kate-editor.org" \
rel="noreferrer noreferrer" target="_blank">https://kate-editor.org</a><br> \
</blockquote></div></div></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic