Subject: Re: bug#71367: 30.0.50; ELPA package breadcrumb causes Emacs freeze when editing json file

From: Eli Zaretskii <[email-masked]>
Date: Thu, 06 Jun 2024 14:33:26 +0300

> From: João Távora <[email-masked]>
> Date: Thu, 6 Jun 2024 11:07:54 +0100
> Cc: Andrea Corallo <[email-masked]>, [email-masked], [email-masked], 
> 	[email-masked]
> 
> > Maybe João could suggest some trick or user option to cut down that
> > initial time to reasonable level.
> 
> No, but feel free to profile and suggest Elisp changes or algorithmic
> changes.  Maybe the vconcat re-allocations in breadcrumb--ipath-plain
> re-allocations are to blame?  It's O(N^2) allocations I think.

Could be.

> What's the length of bc--ipath-plain?  17500ish?  If so, then the
> thing would be to reserve some space in the vector upfront, but I
> don't know how to do that easily in Elisp (in CL there's VECTOR-PUSH
> and VECTOR-PUSH-EXTEND).

I'd say allocate some initial space with make-vector, and then enlarge
using vconcat or something?