Hi,
Here is a short summary of all the improvements related to the SelectorTable
(which allows the tools to quickly check if a symbol is used as a selector):
-
It is reset at image build (#cleanUp)
- re-creating is fast (#bench shows '16.902 per second' on my machine for rebuildSelectorTable)
(we can even think about resetting it on #shutDown: now)
-
Recording happens at method installation, not compilation
- this means we call it far less on code loading
- not called anymore for doIts and FFI method creation
-
optimized: #isSelectorSymbol is ~3.5 times faster in Pharo11 compared to Pharo10
- most speedup due to using a identity dictionary, avoiding costly string comparing
-
all users of #findInternedSelector: have been changed to send #isSelectorSymbol to the symbol
- #findInternedSelector: will be deprecated
Marcus
Hi,
Here is a short summary of all the improvements related to the SelectorTable
(which allows the tools to quickly check if a symbol is used as a selector):
- It is reset at image build (#cleanUp)
- re-creating is fast (#bench shows '16.902 per second' on my machine for rebuildSelectorTable)
(we can even think about resetting it on #shutDown: now)
- Recording happens at method installation, not compilation
- this means we call it far less on code loading
- not called anymore for doIts and FFI method creation
- optimized: #isSelectorSymbol is ~3.5 times faster in Pharo11 compared to Pharo10
- most speedup due to using a identity dictionary, avoiding costly string comparing
- all users of #findInternedSelector: have been changed to send #isSelectorSymbol to the symbol
- #findInternedSelector: will be deprecated
Marcus