Skip to content

Performance testing suite design #2511

@shcheklein

Description

@shcheklein

Opening this issue to start the discussion on how should we approach the implementation of the DVC performance tests (aka time testing, aka benchmarking, etc).

Motivation:

As we go we should see performance degradation. For example, someone made a heavy import that affects CLI time to show something (this dvc help that should run in ms). Or, we implemented some dvc checkout logic that affects performance. Now, we have to run every time manually some additional checks. It's fragile, people tend to forget to run it, etc.

Requirements:

Implementations:

  • We should definitely take a look at other projects (cpython? databases?), available cloud solutions for this?
  • How do we implement this: separate repo dvc-test vs a directory in the main repo tests/time or tests/bench or whatnot.
    • dvc-test seems to be more flexible to my mind, I don't see any downsides if it's implemented right
    • directory approach: @Suor could you put a comment - what specific advantages do you see here that could not implemented in the directory one?

@iterative/engineering any thoughts? any comments are welcome - I'll be editing this ticket to come up with a good summary.

Metadata

Metadata

Assignees

Labels

discussionrequires active participation to reach a conclusionp1-importantImportant, aka current backlog of things to do

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions