本文整理汇总了C#中Stats.StartBlock方法的典型用法代码示例。如果您正苦于以下问题:C# Stats.StartBlock方法的具体用法?C# Stats.StartBlock怎么用?C# Stats.StartBlock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Stats
的用法示例。
在下文中一共展示了Stats.StartBlock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ComputeBlockStats
/// <summary>
/// Runs next() through the entire terms dict,
/// computing aggregate statistics.
/// </summary>
public Stats ComputeBlockStats()
{
Stats stats = new Stats(OuterInstance.OuterInstance.Segment, OuterInstance.fieldInfo.Name);
if (OuterInstance.Index != null)
{
stats.IndexNodeCount = OuterInstance.Index.NodeCount;
stats.IndexArcCount = OuterInstance.Index.ArcCount;
stats.IndexNumBytes = OuterInstance.Index.SizeInBytes();
}
CurrentFrame = StaticFrame;
FST<BytesRef>.Arc<BytesRef> arc;
if (OuterInstance.Index != null)
{
arc = OuterInstance.Index.GetFirstArc(Arcs[0]);
// Empty string prefix must have an output in the index!
Debug.Assert(arc.Final);
}
else
{
arc = null;
}
// Empty string prefix must have an output in the
// index!
CurrentFrame = PushFrame(arc, OuterInstance.RootCode, 0);
CurrentFrame.FpOrig = CurrentFrame.Fp;
CurrentFrame.LoadBlock();
ValidIndexPrefix = 0;
stats.StartBlock(CurrentFrame, !(CurrentFrame.IsLastInFloor));
while (true)
{
// Pop finished blocks
while (CurrentFrame.NextEnt == CurrentFrame.EntCount)
{
stats.EndBlock(CurrentFrame);
if (!CurrentFrame.IsLastInFloor)
{
CurrentFrame.LoadNextFloorBlock();
stats.StartBlock(CurrentFrame, true);
}
else
{
if (CurrentFrame.Ord == 0)
{
goto allTermsBreak;
}
long lastFP = CurrentFrame.FpOrig;
CurrentFrame = Stack[CurrentFrame.Ord - 1];
Debug.Assert(lastFP == CurrentFrame.LastSubFP);
// if (DEBUG) {
// System.out.println(" reset validIndexPrefix=" + validIndexPrefix);
// }
}
}
while (true)
{
if (CurrentFrame.Next())
{
// Push to new block:
CurrentFrame = PushFrame(null, CurrentFrame.LastSubFP, Term_Renamed.Length);
CurrentFrame.FpOrig = CurrentFrame.Fp;
// this is a "next" frame -- even if it's
// floor'd we must pretend it isn't so we don't
// try to scan to the right floor frame:
CurrentFrame.IsFloor = false;
//currentFrame.hasTerms = true;
CurrentFrame.LoadBlock();
stats.StartBlock(CurrentFrame, !CurrentFrame.IsLastInFloor);
}
else
{
stats.Term(Term_Renamed);
break;
}
}
//allTermsContinue:;
}
allTermsBreak:
stats.Finish();
// Put root frame back:
CurrentFrame = StaticFrame;
if (OuterInstance.Index != null)
{
arc = OuterInstance.Index.GetFirstArc(Arcs[0]);
// Empty string prefix must have an output in the index!
Debug.Assert(arc.Final);
}
else
{
arc = null;
//.........这里部分代码省略.........