Comment 2 for bug 1192144

Revision history for this message
Heiko (koehnheiko) wrote : Re: [Mudlet-makers] [Bug 1192144] [NEW] killTrigger(tempID) takes a while and variates with time

added faster deletion speed is now about 1.2s using the example script
Note that trigs are actually deleted after new text has arrived. there's
no other way to do it because killTrigger() can be used in trigger
scripts. Consquently, repeated calls via alias without any server input
will grow the number of triggers until new text arrives from the game.

Am 18.06.2013 13:59, schrieb Vadim Peretokin:
> Public bug reported:
>
> It's been
> observed[http://forums.mudlet.org/posting.php?mode=reply&f=7&t=3481#pr17189]
> that killTrigger is not very quick when used in conjunction with a
> massive set of triggers.
>
> Attached is a test case that demonstrates this with real-life data from
> a name highlighter. tempTrigger() performs *amazingly*, getting the job
> done in a hundredth of a second. killTrigger() on the other hand takes
> 40+s, variating each time, to do its job:
>
>
> Run 1:
> Creating 12275 triggers took 0.094 seconds.
> Deleting 12275 triggers took 46.673 seconds.
>
> Run 2:
> Creating 12275 triggers took 0.095 seconds.
> Deleting 12275 triggers took 100.652 seconds.
>
> Run 3:
> Creating 12275 triggers took 0.104 seconds.
> Deleting 12275 triggers took 43.425 seconds.
>
> <restarted Mudlet>
>
> Run 4:
> Creating 12275 triggers took 0.103 seconds.
> Deleting 12275 triggers took 3.54 seconds.
>
> Run 5:
> Creating 12275 triggers took 0.11 seconds.
> Deleting 12275 triggers took 26.46 seconds.
>
> Run 6:
> Creating 12275 triggers took 0.137 seconds.
> Deleting 12275 triggers took 55.442 seconds.
>
> Run 7:
> Mudlet actually crashed with:
> ASSERT: "uint(i) < uint(size())" in file /usr/include/qt4/QtCore/qstring.h, line 699
> Aborted (core dumped)
>
> <restart>
> Run 1:
> Creating 12275 triggers took 0.097 seconds.
> Deleting 12275 triggers took 4.357 seconds.
>
> Run 2:
> Creating 12275 triggers took 0.107 seconds.
> Deleting 12275 triggers took 27.756 seconds.
>
> Run 3:
> Creating 12275 triggers took 0.122 seconds.
> Deleting 12275 triggers took 53.483 seconds.
>
> Run 4:
> Creating 12275 triggers took 0.137 seconds.
> Deleting 12275 triggers took 80.101 seconds.
>
> Run 5:
> Creating 12275 triggers took 0.101 seconds.
> Deleting 12275 triggers took 106.571 seconds.
>
> Run 6:
> Creating 12275 triggers took 0.163 seconds.
> Deleting 12275 triggers took 135.803 seconds.
>
> Run 7:
> Creating 12275 triggers took 0.094 seconds.
> Deleting 12275 triggers took 157.775 seconds.
>
> Run 8:
> Creating 12275 triggers took 0.083 seconds.
> Deleting 12275 triggers took 177.296 seconds.
>
> Run 9:
> Creating 12275 triggers took 0.133 seconds.
> Deleting 12275 triggers took 207.396 seconds.
>
> Run 10:
> Creating 12275 triggers took 0.199 seconds.
> Deleting 12275 triggers took 232.67 seconds.
>
> I'll note that the statistics window reports the triggers just being... disabled, it seems. Here is what it says after these runs:
> triggers current total: 122871
> trigger patterns total: 122927
> tempTriggers current total: 122750
> active triggers: 116
>
> This is using latest git.
>
> ** Affects: mudlet
> Importance: Undecided
> Status: New
>
> ** Attachment added: "killTrigger speed.xml"
> https://bugs.launchpad.net/bugs/1192144/+attachment/3706415/+files/killTrigger%20speed.xml
>