#12 Task grouping, sorting and filtering

open
None
5
2008-07-04
2008-06-27
No

TimeDoctor currently shows task in a flat list. I'm not sure about the concept behind the sorting order but I have the impression it's determined by the order in which events for a task first appear in the tdi file.

Proposal:
* Organize the left column with the list of tasks in a tree structure, based on parent-child and threadgroup-thread relations that exist in Linux. An extension of the tdi format is needed to (optionally) specify this information.

* Make the nodes in the tree collapsible, with plus/minus signs like in windows explorer. When the node is collapsed, all tasks in the sub-structure are removed from the task view. As an extra feature, we could display a "virtual task" at the line of the collapsed node, showing the cumulated scheduling pattern of all sub tasks.

* To further sort tasks, next to the tree structure, take into account the order in which tasks are declared in the tdi file (rather than the order in which scheduling events arrive).

All of these features can be made backward compatible: e.g. if the users specifies no task grouping information in the tdi file, TimeDoctor falls back on the original sorting algorithm.

Discussion

  • Mahesh DC
    Mahesh DC
    2008-07-04

    • assigned_to: nobody --> willemtaildeman
     
  • Mahesh DC
    Mahesh DC
    2008-07-04

    Logged In: YES
    user_id=1577725
    Originator: NO

    Willem,

    I am assigning it to you!
    You can submit the patch here, as an attachment.

    -Mahesh

     
  • Logged In: YES
    user_id=2131516
    Originator: NO

    Hi,

    In attachment you'll find my last feature.

    It uses the next command in the .tdi file:
    INF <PID> <GID> <PPID>

    Every process that you want to display in a tree view must get such a tag (it is possible for tasks / agents and combination views = my previous feature). The PID describes its own process id. The GID describes of which process this process is a thread. When this process is not a thread, the GID == PID.
    The PPID describes the parent process. If the item is the root item, PPID == PID.

    Everything is displayed in a tree view.

    The SWT.Tree is apparently not that fast. So when working with large traces (the traces we work with @ philips are sometimes 5MiB large) the tool is very slow. For that reason i have not implemented the auto-hide / hide empty lines. It would make the tool too slow to use.

    I've tried to optimize is as much as possible, but the performance is limited by the tree-functions. The only solution is displaying less lines (e.g. by collapsing tasks/agents/... and only showing combination view).

    I hope to get soon feedback. I'm finishing my internship Friday, so after this date I am not able to work on the code on a daily basis like I do now.
    File Added: feature_2004163_v1.diff

     
  • patch v2 with some extra features

     
  • Logged In: YES
    user_id=2131516
    Originator: NO

    I've solved some bugs, and attached a new patch

    Also in this patch (I will try to make a separate patch/feature request for each one later on):

    - possibility to choose 16 more colors for the task view (so that you can choose the standard dark blue of the lines)
    - edited some comments for javadoc
    - added tooltip for combination view (I will put a new patch for the combination view online soon). This tooltip concatenates all strings from his children.

    File Added: feature_2004163_v2_full.diff