Column sorting should be done using stable sort implementation

Open
#11 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp
Domain
desktop

Research direction

Reproduce the issue through Start Exploring By Compilands by sorting first on Size on Disk and then on Lib Name. Locate the column-sorting implementation and make the composed order preserve the earlier sort within equal later-sort values; done means the rows remain ordered by size within each library.

Written by the indexing model from the issue text.

Description

Describe the bug
I cannot compose column sorting in SizeBench, because it uses unstable sorting for sorting by column.

What you are doing

  1. Open a binary for inspection
  2. Select "Start Exploring By Compilands"
  3. Sort results by specific column, e.g. Size on Disk
  4. Sort results by different column, e.g. Lib Name

Expected behavior
I want the rows to be sorted by Lib Name and within single lib, by their size on disk.

What actually happens is that I get rows sorted by Lib Name and otherwise jumbled, so I can't go after largest obj files in given lib, which is what I want to do.

Environment Details

  • OS: [type ver at the Windows Command Prompt]: [Version 10.0.19044.1889]
  • SizeBench version number [Go to Help > About SizeBench]: 2.2204.1800.0 (git commit b5c2b2ea)

Additional context
While my original use case is specifically grouping by lib, sort by size on disk, using stable sort when sorting by column will allow users to compose their own sorting orders arbitrarily.

Dominant language
C#
Stars
175
Forks
20
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/SizeBench

All issues in microsoft/SizeBench

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.