[jboss-user] [JBoss Microcontainer Development] New message: "Re: CallbackItem.changeCallback() very expensive due to context tracking"
Kabir Khan
do-not-reply at jboss.com
Mon Feb 22 09:04:31 EST 2010
User development,
A new message was posted in the thread "CallbackItem.changeCallback() very expensive due to context tracking":
http://community.jboss.org/message/527600#527600
Author : Kabir Khan
Profile : http://community.jboss.org/people/kabir.khan@jboss.com
Message:
--------------------------------------------------------------
> mailto:kabir.khan at jboss.com wrote:
>
>
> For B I don't really understand exactly why this is being done? It looks like we check for ContextTracker in each metadata level at INSTANCE level and above, up to JVM. Wouldn't that be handled by the call to metaData.getMetaData() in C anyway?I
Changing this to the following works, but maybe we aren't using context tracking in the kernel tests?
public ContextTracker getContextTracker()
{
if (tracker == null || tracker == NOOP)
{
synchronized (this)
{
// since we got through, we must be the same caller
if (tracker == NOOP)
return null;
// we waited, got through, but it's now changed
if (tracker != null && tracker != NOOP)
return tracker;
tracker = NOOP; // mark that we're initializing
ContextTracker ct = null;
MetaData metaData = scopeInfo.getMetaData();
if (metaData != null)
{
ct = metaData.getMetaData(ContextTracker.class);
// if (ct == null)
// {
// List<ScopeLevel> levels = CommonLevelsUtil.getSubLevels(DEFAULT_MINIMAL);
// int instanceIndex = levels.indexOf(CommonLevels.INSTANCE);
// for (int i = instanceIndex; i >= 0 && ct == null; i--)
// {
// MetaData md = metaData.getScopeMetaData(levels.get(i));
// if (md != null)
// ct = md.getMetaData(ContextTracker.class);
// }
// }
}
tracker = ct; // should we care if it's still null?
}
}
return tracker;
}
In turn about 60% of the time taken by calling ScopeKey.getScopeLevel(). If the above fix is not ok, I'll need to look at optimizing that.
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/527600#527600
More information about the jboss-user
mailing list