Bigio.BigArray.JITO.Operations.AbstractOperationResolver.ChooseFastestMethod C# (CSharp) Метод

ChooseFastestMethod() защищенный Метод

protected ChooseFastestMethod ( ) : int
Результат int
        protected int ChooseFastestMethod()
        {
            long minTime = long.MaxValue;
            int index = 0;

            var possibleRealizationData = GetPossibleRealizationTestData();

            if (possibleRealizationData.IdPerRealization.Count == 0)
                throw new ArgumentOutOfRangeException("possibleRealizationList",
                    "There is no any possible realizations of method for " + GetType().Name);

            var argumentArray = possibleRealizationData.ArgumentArray;
            foreach (KeyValuePair<int, object> keyValuePair in possibleRealizationData.IdPerRealization)
            {
                var possibleRealization = keyValuePair.Value;
                var methodInfo = GetMethodInfo(possibleRealization, possibleRealizationData.MethodName);
                long currentTime = GetExecutionTime(possibleRealization, methodInfo, argumentArray,
                    possibleRealizationData.CountOfTestInvokations);

                if (currentTime < minTime)
                {
                    minTime = currentTime;
                    index = keyValuePair.Key;
                }
            }

            return index;
        }