emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MPS: dangling markers


From: Gerd Möllmann
Subject: Re: MPS: dangling markers
Date: Sun, 30 Jun 2024 09:11:31 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> Gerd Möllmann <gerd.moellmann@gmail.com> writes:
>
>> Gerd Möllmann <gerd.moellmann@gmail.com> writes:
>>
>>> And that makes sense. I'll try tomorrow to add something to igc that
>>> Ihor can tell us how many markers there are that are allocated in the
>>> place Eli showed.
>>
>> Can't sleep (football), so:
>>
>> I ended up adding an integer parameter to build_marker, which is
>> different for each call site, because the markers built in marker.c
>> which Eli pointed to were not the problem, at least for what I did.
>>
>> I start Emacs, M-x igc-stats which let's me see the number of markers.
>> Then repeated g to see the number of markers go up. What I see is a
>> rapid growth in markers, by the hundreds each time I refresh, and the
>> histogram looks like this
>>
>>   [0 12 3039 0 8 9 19 0 0 0 47365 8 13 0 0 0 0 0 0 0 2618 2618 0 0 0 0 0
>>    0 0 0]
>>
>> And 10 is
>>
>>   DEFUN ("point-marker", Fpoint_marker, Spoint_marker, 0, 0, 0,
>>          doc: /* Return value of point, as a marker object.  */)
>>     (void)
>>   {
>>     return build_marker (current_buffer, PT, PT_BYTE, 10);
>>   }
>>
>> Don't know who calls that, but it absolutely dominates.
>
> Pushed to scratch/igc. Use build-marker-counts to get the numbers.

I think I have an idea: What if igc_add_marker records in Lisp_Marker at
which index in the weak vector it stored the marker? That would make
igc_remove_marker O(1).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]