I need to double check it, for now I cannot access the issue tracker (probably local internet issues).
As far as I remember, the problem was that SmallLint rules where checking contexts and not classes and methods. I.e. you had to create a context, set it���s ���selected" class or method, pass it into the rule and then rule would take out class or method out of the context and check them. In my humble opinions this is 1) pain, 2) a bit confuting that #chackClass: method accepts context and not a class.
But I guess at some point there was some caching happening during the check in a certain rules, and now it���s not there.
What I was suggesting is to either define a context attribute for all rules, or even better, define a hierarchy of rules that besides the entity to check accept the context that is needed for the check, as not avery rule requires a context. By default it can be a live context of whale system, but on demand we can create a snapshot of a context (with caches) and pass it to different rules several times. Sadly I never managed to finish implementing it, it���s still in my todo list.
Uko
yuriy what was a context?
Stef
Le 18/8/15 22:39, Yuriy Tymchuk a
��crit :
This may have happened when I was removing contexts
from the rules.
Uko
Hi marcus
do you get an idea why we got this slowdown?
Stef
Le 30/7/15 14:08, Marcus
Denker a ��crit :
I added an issue:
i think we need to put in some cashing���
here if we would could all *used* classes once for an
enviroment���.
Paul DeBruicker wrote
Hi Stef,
The slowdown is dependent upon the # of
classes in the package. If you
use Fuel then you should see a slowdown of
20x. I just have a lot of
classes in this package. The source of the
slowdown is in the changes to
RBSmallLintChecker>>#checkClass: and
RBClassNotReferencedRule>>#checkClass: .
The old versions use the linter
to check if the literal is used anywhere and
the new one uses #allCallsOn.
Hope this helps
Paul
and by "use Fuel" I mean:
rule:=RBClassNotReferencedRule new.
environment:=RBBrowserEnvironment new
forPackageNames: #('Fuel').
AndreasSystemProfiler spyOn:[RBSmalllintChecker
runRule: rule onEnvironment:
environment]
--
View this message in context:
http://forum.world.st/Is-RBClassNotReferencedRule-200x-slower-in-Pharo-4-vs-Pharo-3-tp4839875p4839977.html
Sent from the Pharo Smalltalk Users mailing list
archive at
Nabble.com.