Re: [Codenarc-developer] GMetrics ASTUtils needs to change
Brought to you by:
chrismair
|
From: Chris M. <chr...@ea...> - 2011-09-16 00:09:44
|
Hamlet,
Sounds good. I will put that at the top of my GMetrics to-do's. Would you
want to delay the next CodeNarc release to wait for that?
Chris
-----Original Message-----
From: Hamlet DArcy [mailto:ham...@ca...]
Sent: Thursday, September 15, 2011 3:17 AM
To: cod...@li...
Subject: [Codenarc-developer] GMetrics ASTUtils needs to change
Hi Chris,
One of the bigger bottlenecks in CodeNarc is now the GMetrics#ASTUtil
getVariableExpressions class. If you could change it to be implemented
*exactly* the same way as CodeNarc, then we would shave about 8-10% off the
total times.
Here is how the method should be implemented:
static List getVariableExpressions(DeclarationExpression
declarationExpression) {
def leftExpression = declarationExpression.leftExpression
// !important: performance enhancement
if (leftExpression instanceof ArrayExpression) {
leftExpression.expressions ?: [leftExpression]
} else if (leftExpression instanceof ListExpression) {
leftExpression.expressions ?: [leftExpression]
} else if (leftExpression instanceof TupleExpression) {
leftExpression.expressions ?: [leftExpression]
} else if (leftExpression instanceof VariableExpression) {
[leftExpression]
} else {
leftExpression.properties['expressions'] ?: [leftExpression]
}
}
Basically, the last else block should *never* be called. If we ever find
that it is called then we need to add a new if branch to avoid that. Hmmm...
perhaps we should add a LOG.warning there?
--
Hamlet D'Arcy
ham...@ca...
----------------------------------------------------------------------------
--
Doing More with Less: The Next Generation Virtual Desktop What are the key
obstacles that have prevented many mid-market businesses
from deploying virtual desktops? How do next-generation virtual desktops
provide companies an easier-to-deploy, easier-to-manage and more affordable
virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/
_______________________________________________
Codenarc-developer mailing list
Cod...@li...
https://lists.sourceforge.net/lists/listinfo/codenarc-developer
|