[optimization] improve massive write performance by optimizing hooks selection
profiling on some massive deletion showed up that 2/3 of the time was spent
in hooks selection. Those changes make it much more acceptable (through
selection is still not negligeable):
* use one registry for each event, so we've much less hooks to check
when emiting an event as well as no more need for the match_event
selector. This required ability to put one appobject
into several registries, using a __registries__ class attribute.
* check for deprecated .enabled at registry initialization time instead
of at selection time
A very simple HooksManager class has been reintroduce to choose the
right registry on call_hooks.
Those optimisations leads to a ~x3 factor of time necessary to delete
16000 entities.
<?xml version="1.0" encoding="UTF-8"?>
<display window-flags="sticky, below" width="185" height="200">
<sensor id="r" module="rqlsensor"/>
<sensor id="FS" module="FontSelector,1,Sans 10 black"/>
<!-- left border -->
<group x="0" width="5" height="200" bg-uri="gfx/border-left.png"/>
<image x="10" y="0" uri="gfx/logo_erudi.png"/>
<array id="results" x="10" y="30"
watch="layout=r:layout, length=r:length">
<label id="lbls1" color="black"
on-enter="r:enter-line"
on-leave="r:leave-line"
on-click="r:click-line"
watch="value=r:result, font=FS:font0, color=r:resultbg"/>
</array>
</display>