예제 #1
0
 public void Print(MetricsCollection metricsCollection, SortKind sortKind, int top)
 {
     lock (sync)
     {
         PrintInternal(metricsCollection, sortKind, top);
     }
 }
예제 #2
0
        private RankingMethod GetRankingMethod()
        {
            HoseiKind hosei_kind = HoseiKind.Nothing;

            if (radioButtonHoseiVocaran.Checked)
            {
                hosei_kind = HoseiKind.Vocaran;
            }
            else if (radioButtonHoseiNicoran.Checked)
            {
                hosei_kind = HoseiKind.Nicoran;
            }
            SortKind sort_kind = SortKind.Nothing;

            if (radioButtonSortMylist.Checked)
            {
                sort_kind = SortKind.Mylist;
            }
            else if (radioButtonSortPoint.Checked)
            {
                sort_kind = SortKind.Point;
            }
            if (checkBoxFilter.Checked)
            {
                return(new RankingMethod(hosei_kind, sort_kind,
                                         (int)numericUpDownMylistRate.Value,
                                         true, nicorank_mgr_.GetPathMgr().GetFullPath(textBoxFilterPath.Text), checkBoxIsOutputFilteredVideo.Checked));
            }
            else
            {
                return(new RankingMethod(hosei_kind, sort_kind, (int)numericUpDownMylistRate.Value));
            }
        }
예제 #3
0
 public Sorter(IDataFrame dataFrame, List <int> columnIndexs, SortType type = SortType.ascending, SortKind kind = SortKind.quicksort)
 {
     _dataFrame    = dataFrame ?? throw new ArgumentNullException("IDataFrame不能为null。");
     _columnIndexs = columnIndexs;
     Type          = type;
     Kind          = kind;
 }
예제 #4
0
 public RankingMethod(HoseiKind hosei_kind_a, SortKind sort_kind_a, int mylist_rate_a)
 {
     hosei_kind      = hosei_kind_a;
     sort_kind       = sort_kind_a;
     mylist_rate     = mylist_rate_a;
     is_using_filter = false;
     filter_filename = "";
 }
예제 #5
0
        private void SortToc(SortKind kind)
        {
            _tocSort = kind;
            Util.Properties.Settings.Default.TocSort = kind;
            Util.Properties.Settings.Default.Save();

            _userIsStillWaitingForPerformsTreeView = false;


            if (_cobolFile == null || _cobolFile.CobolTree == null)
            {
                tocTreeView.Nodes.Add(new TreeNode("Error: CobolTree could not be built.")
                {
                    ForeColor = Color.Red
                });
                return;
            }

            var query = tocSearchTextBox.Text != Resources.SearchPlaceholder ? tocSearchTextBox.Text : "";

            TocSortAlphabeticallyButton.Checked = _tocSort == SortKind.Alphabetical;
            TocSortHierarchicallyButton.Checked = _tocSort == SortKind.BySections;
            TocSortByPerformsButton.Checked     = _tocSort == SortKind.ByPerforms;

            tocTreeView.Nodes.Clear();
            var rootNode = _tableOfContentsWorker.GetToc(_tocSort, query);

            // null => perform tree is not built yet => wait for event
            if (rootNode == null)
            {
                // add loading image
                tocTreeView.Controls.Add(_loader);

                _userIsStillWaitingForPerformsTreeView = true;

                // wait for event
                _tableOfContentsWorker.PerformTreeIsBuilt += (sender, args) =>
                {
                    // if user has switched to another view, do not disturb him
                    if (!_userIsStillWaitingForPerformsTreeView)
                    {
                        return;
                    }

                    var performTreeRootNode = (TreeNode)args.Result;
                    performTreeRootNode.ExpandAll();
                    tocTreeView.Nodes.Add(performTreeRootNode);
                    tocTreeView.Controls.Remove(_loader);
                };
            }
            else
            {
                tocTreeView.Controls.Remove(_loader);
                rootNode.ExpandAll();
                tocTreeView.Nodes.Add(rootNode);
            }
        }
예제 #6
0
 public RankingMethod(HoseiKind hosei_kind_a, SortKind sort_kind_a, int mylist_rate_a, bool is_using_filter_a,
                      string filter_filename_a, bool is_output_filtered_video_a)
 {
     hosei_kind               = hosei_kind_a;
     sort_kind                = sort_kind_a;
     mylist_rate              = mylist_rate_a;
     is_using_filter          = is_using_filter_a;
     filter_filename          = filter_filename_a;
     is_output_filtered_video = is_output_filtered_video_a;
 }
예제 #7
0
        static string ProcessArguments(string [] args)
        {
            var help    = false;
            var options = new OptionSet {
                $"Usage: {Name}.exe OPTIONS* <methods-file>",
                "",
                "Processes JIT methods file from XA app with debug.mono.log=timing enabled",
                "",
                "Copyright 2019 Microsoft Corporation",
                "",
                "Options:",
                { "h|help|?",
                  "Show this message and exit",
                  v => help = v != null },
                { "m|method=",
                  "Process only methods whose names match {TYPE-REGEX}.",
                  v => methodNameRegexes.Add(new Regex(v)) },
                { "s",
                  "Sort by self times. (this is default ordering)",
                  v => sortKind = SortKind.Self },
                { "t",
                  "Sort by total times.",
                  v => sortKind = SortKind.Total },
                { "u",
                  "Show unsorted results.",
                  v => sortKind = SortKind.Unsorted },
                { "v|verbose",
                  "Output information about progress during the run of the tool",
                  v => Verbose = true },
            };

            var remaining = options.Parse(args);

            if (help || args.Length < 1)
            {
                options.WriteOptionDescriptions(Out);

                Environment.Exit(0);
            }

            if (remaining.Count != 1)
            {
                Error("Please specify one <methods-file> to process.");
                Environment.Exit(2);
            }

            return(remaining [0]);
        }
예제 #8
0
        public TreeNode GetToc(SortKind tocSort, string query)
        {
            switch (tocSort)
            {
            case SortKind.Alphabetical:
                return(ConvertToFlatToc(query));

            case SortKind.BySections:
                return(ConvertToTreeNodes(query));

            case SortKind.ByPerforms:
                if (string.IsNullOrEmpty(query))
                {
                    return(_performsTree);
                }
                return(FilterByQuery(_performsTree, query) ?? new TreeNode());

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #9
0
        public int[] Sort(SortKind kind, int[] input)
        {
            switch (kind)
            {
            case SortKind.Bubble:
                bool sorted = false;
                while (!sorted)
                {
                    sorted = true;
                    for (int i = 0; i < input.Length - 1; i++)
                    {
                        if (input[i] > input[i + 1])
                        {
                            Swap(input, i, i + 1);
                            sorted = false;
                        }
                    }
                }
                break;

            case SortKind.Quick:
                input = Quicksort(input, 0, input.Length - 1);
                break;

            case SortKind.Insertion:
                for (int i = 0; i < input.Length - 1; i++)
                {
                    for (int j = i + 1; j > 0; j--)
                    {
                        if (input[j] < input[j - 1])
                        {
                            Swap(input, j, j - 1);
                        }
                    }
                }

                break;
            }
            return(input);
        }
예제 #10
0
        private void PrintInternal(MetricsCollection collection, SortKind sortKind, int top)
        {
            stringBuilder.Clear();
            stringBuilder.AppendLine($"Machine: {collection.MachineName}, Timestamp: {collection.Timestamp}");

            var table = ConsoleTable.From(
                Sort(collection
                     .ProcessMetricsCollection, sortKind)
                .Take(top)
                .Select(x => new ProcessMetricsModel(x)))
                        .ToMarkDownString();

            var lines = stringBuilder.Append(table).ToString().Split(NewLine, StringSplitOptions.RemoveEmptyEntries);

            stringBuilder.Clear();

            var width = GetConsoleWidth();

            if (consoleWidth != width)
            {
                Console.Clear();
                consoleWidth = width;
            }

            foreach (var line in lines)
            {
                stringBuilder.Append(line, 0, Math.Min(width, line.Length));
                if (line.Length < width)
                {
                    stringBuilder.Append(' ', width - line.Length);
                }
                stringBuilder.AppendLine();
            }

            Console.SetCursorPosition(0, 0);
            Console.WriteLine(stringBuilder.ToString());
        }
예제 #11
0
        /// <summary>
        /// Shoutcastの設定をファイルに保存
        /// </summary>
        public void SaveSetting()
        {
            FileStream    fs     = null;
            XmlTextWriter writer = null;

            try
            {
                fs     = new FileStream(GetSettingPath(), FileMode.Create, FileAccess.Write);
                writer = new XmlTextWriter(fs, Encoding.GetEncoding("utf-8"));

                writer.Formatting = Formatting.Indented;
                writer.WriteStartDocument(true);

                writer.WriteStartElement("Setting");

                writer.WriteStartElement("Header");

                writer.WriteStartElement("Name");
                writer.WriteAttributeString("name", PocketLadioInfo.ApplicationName);
                writer.WriteEndElement(); // End of Name.
                writer.WriteStartElement("Version");
                writer.WriteAttributeString("version", PocketLadioInfo.VersionNumber);
                writer.WriteEndElement(); // End of Version.

                writer.WriteStartElement("Date");
                writer.WriteAttributeString("date", DateTime.Now.ToString());
                writer.WriteEndElement(); // End of Date.

                writer.WriteEndElement(); // End of Header.

                writer.WriteStartElement("Content");

                writer.WriteStartElement("SearchWord");
                writer.WriteAttributeString("word", SearchWord);
                writer.WriteEndElement(); // End of SearchWord

                writer.WriteStartElement("PerView");
                writer.WriteAttributeString("view", perView);
                writer.WriteEndElement(); // End of PerView

                writer.WriteStartElement("IgnoreHtmlAnalyze");
                writer.WriteAttributeString("firstto", IgnoreHtmlAnalyzeFirstTo.ToString());
                writer.WriteAttributeString("endfrom", IgnoreHtmlAnalyzeEndFrom.ToString());
                writer.WriteEndElement(); // End of IgnoreHtmlAnalyze

                writer.WriteStartElement("HeadlineViewType");
                writer.WriteAttributeString("type", HeadlineViewType);
                writer.WriteEndElement(); // End of HeadlineViewType

                writer.WriteStartElement("Filter");
                foreach (string filterWord in GetFilterMatchWords())
                {
                    writer.WriteStartElement("Word");
                    writer.WriteAttributeString("type", "match");
                    writer.WriteAttributeString("word", filterWord);
                    writer.WriteEndElement(); // End of Word
                }

                foreach (string filterWord in GetFilterExclusionWords())
                {
                    writer.WriteStartElement("Word");
                    writer.WriteAttributeString("type", "exclusion");
                    writer.WriteAttributeString("word", filterWord);
                    writer.WriteEndElement(); // End of Word
                }

                writer.WriteStartElement("AboveBitRate");
                writer.WriteAttributeString("use", FilterAboveBitRateUse.ToString());
                writer.WriteAttributeString("bitrate", FilterAboveBitRate.ToString());
                writer.WriteEndElement(); // End of AboveBitRate

                writer.WriteStartElement("BelowBitRate");
                writer.WriteAttributeString("use", FilterBelowBitRateUse.ToString());
                writer.WriteAttributeString("bitrate", FilterBelowBitRate.ToString());
                writer.WriteEndElement(); // End of BelowBitRate

                writer.WriteStartElement("Sort");
                writer.WriteAttributeString("kind", SortKind.ToString());
                writer.WriteAttributeString("scending", SortScending.ToString());
                writer.WriteEndElement(); // End of Sort

                writer.WriteEndElement(); // End of Filter

                writer.WriteEndElement(); // End of Content.

                writer.WriteEndElement(); // End of Setting.

                writer.WriteEndDocument();
            }
            finally
            {
                writer.Close();
                fs.Close();
            }
        }
예제 #12
0
        private static IEnumerable <ProcessMetrics> Sort(IEnumerable <ProcessMetrics> metrics, SortKind sortKind)
        {
            switch (sortKind)
            {
            case SortKind.Cpu:
                return(metrics.OrderByDescending(x => x.Cpu));

            case SortKind.WorkingSet:
                return(metrics.OrderByDescending(x => x.WorkingSet));

            case SortKind.PrivateBytes:
                return(metrics.OrderByDescending(x => x.PrivateBytes));

            default:
                throw new ArgumentOutOfRangeException(nameof(sortKind), sortKind, null);
            }
        }
예제 #13
0
        /// <summary>
        /// ねとらじの設定をファイルに保存
        /// </summary>
        public void SaveSetting()
        {
            FileStream    fs     = null;
            XmlTextWriter writer = null;

            try
            {
                fs     = new FileStream(GetSettingPath(), FileMode.Create, FileAccess.Write);
                writer = new XmlTextWriter(fs, Encoding.GetEncoding("utf-8"));

                writer.Formatting = Formatting.Indented;
                writer.WriteStartDocument(true);

                writer.WriteStartElement("Setting");

                writer.WriteStartElement("Header");

                writer.WriteStartElement("Name");
                writer.WriteAttributeString("name", PocketLadioInfo.ApplicationName);
                writer.WriteEndElement(); // End of Name.
                writer.WriteStartElement("Version");
                writer.WriteAttributeString("version", PocketLadioInfo.VersionNumber);
                writer.WriteEndElement(); // End of Version.

                writer.WriteStartElement("Date");
                writer.WriteAttributeString("date", DateTime.Now.ToString());
                writer.WriteEndElement(); // End of Date.

                writer.WriteEndElement(); // End of Header.

                writer.WriteStartElement("Content");

                writer.WriteStartElement("HeadlineCsvUrl");
                writer.WriteAttributeString("url", ((HeadlineCsvUrl != null) ? HeadlineCsvUrl.ToString() : string.Empty));
                writer.WriteEndElement(); // End of HeadlineCsvUrl

                writer.WriteStartElement("HeadlineXmlUrl");
                writer.WriteAttributeString("url", ((HeadlineXmlUrl != null) ? HeadlineXmlUrl.ToString() : string.Empty));
                writer.WriteEndElement(); // End of HeadlineXmlUrl

                writer.WriteStartElement("HeadlineDatV2Url");
                writer.WriteAttributeString("url", ((HeadlineDatV2Url != null) ? HeadlineDatV2Url.ToString() : string.Empty));
                writer.WriteEndElement(); // End of HeadlineDatV2Url

                writer.WriteStartElement("HeadlineGetType");
                writer.WriteAttributeString("type", HeadlineGetWay.ToString());
                writer.WriteEndElement(); // End of HeadlineGetType

                writer.WriteStartElement("HeadlineViewType");
                writer.WriteAttributeString("type", HeadlineViewType);
                writer.WriteEndElement(); // End of HeadlineViewType

                writer.WriteStartElement("Filter");

                foreach (string filterWord in GetFilterMatchWords())
                {
                    writer.WriteStartElement("Word");
                    writer.WriteAttributeString("type", "match");
                    writer.WriteAttributeString("word", filterWord);
                    writer.WriteEndElement(); // End of Word
                }

                foreach (string filterWord in GetFilterExclusionWords())
                {
                    writer.WriteStartElement("Word");
                    writer.WriteAttributeString("type", "exclusion");
                    writer.WriteAttributeString("word", filterWord);
                    writer.WriteEndElement(); // End of Word
                }

                writer.WriteStartElement("AboveBitRate");
                writer.WriteAttributeString("use", FilterAboveBitRateUse.ToString());
                writer.WriteAttributeString("bitrate", FilterAboveBitRate.ToString());
                writer.WriteEndElement(); // End of AboveBitRate

                writer.WriteStartElement("BelowBitRate");
                writer.WriteAttributeString("use", FilterBelowBitRateUse.ToString());
                writer.WriteAttributeString("bitrate", FilterBelowBitRate.ToString());
                writer.WriteEndElement(); // End of BelowBitRate

                writer.WriteStartElement("Sort");
                writer.WriteAttributeString("kind", SortKind.ToString());
                writer.WriteAttributeString("scending", SortScending.ToString());
                writer.WriteEndElement(); // End of Sort

                writer.WriteEndElement(); // End of Filter

                writer.WriteEndElement(); // End of Content.

                writer.WriteEndElement(); // End of Setting.

                writer.WriteEndDocument();
            }
            finally
            {
                writer.Close();
                fs.Close();
            }
        }
예제 #14
0
        /// <summary>
        /// 按列索引对应值进行排序
        /// </summary>
        /// <param name="df"></param>
        /// <param name="indexs">列名索引</param>
        /// <param name="ascending">升序/降序,默认升序</param>
        /// <param name="kind">排序算法,默认快速排序</param>
        /// <returns></returns>
        public static IDataFrame sort_values(this IDataFrame df, int[] indexs, bool ascending = true, SortKind kind = SortKind.quicksort)
        {
            var sorter = new Sorter(df, indexs.ToList(), ascending ? SortType.ascending : SortType.descending, kind);
            var sort   = new DataFrameSort(df, sorter);

            return(sort.ExcuteSort());
        }
예제 #15
0
 public Comparer(SortKind sort1, bool descending1, SortKind sort2, bool descending2)
 {
     _sort = new Tuple <SortKind, bool>[] { new Tuple <SortKind, bool>(sort1, descending1), new Tuple <SortKind, bool>(sort2, descending2) };
 }
예제 #16
0
 public Comparer(SortKind sort, bool descending)
 {
     _sort = new Tuple <SortKind, bool>[] { new Tuple <SortKind, bool>(sort, descending) };
 }