Example #1
0
        private static void GoToDefinition(PackageDatabase db, MemberQuery[] searches, int iterations = 1)
        {
            PartialArray <Symbol> lastSuccessfulResults = new PartialArray <Symbol>();
            PartialArray <Symbol> results = new PartialArray <Symbol>(10);

            using (new TraceWatch("Go To Definition {0:n0} times across {1:n0} values...", iterations, searches.Length))
            {
                for (int iteration = 0; iteration < iterations; ++iteration)
                {
                    MemberQuery query = searches[iteration % searches.Length];
                    query.TryFindMembers(db, ref results);
                    if (results.Count > 0)
                    {
                        results.CopyTo(ref lastSuccessfulResults);
                    }
                }
            }

            if (lastSuccessfulResults.Count > 0)
            {
                lastSuccessfulResults[0].WriteLocation(Console.Out);
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine("NOT FOUND.");
            }

            Console.WriteLine();
        }
Example #2
0
        public static PartialArray <Symbol> SearchPerformance(IMemberDatabase db, MemberQuery[] searches, int iterations = 1)
        {
            PartialArray <Symbol> lastSuccessfulResults = new PartialArray <Symbol>();
            PartialArray <Symbol> results = new PartialArray <Symbol>(20);

            using (new TraceWatch("Searching {0:n0} times across {1:n0} values...", iterations, searches.Length))
            {
                for (int iteration = 0; iteration < iterations; ++iteration)
                {
                    MemberQuery query = searches[iteration % searches.Length];
                    query.TryFindMembers(db, ref results);

                    if (results.Count > 0)
                    {
                        results.CopyTo(ref lastSuccessfulResults);
                    }
                }
            }

            if (lastSuccessfulResults.Count > 0)
            {
                for (int i = 0; i < Math.Min(lastSuccessfulResults.Count, 5); ++i)
                {
                    Symbol result = lastSuccessfulResults[i];

                    int lengthWritten = 0;
                    lengthWritten += result.FullName.WriteTo(Console.Out);
                    Console.Write(new string(' ', Math.Max(1, 60 - lengthWritten)));
                    result.PackageName.WriteTo(Console.Out);
                    Console.WriteLine();
                }
            }
            else
            {
                Console.WriteLine("NOT FOUND.");
            }

            Console.WriteLine();
            return(results);
        }