Skip to content

Improve performance #181

Closed
Closed
@o2sh

Description

@o2sh

Onefetch's performance isn't so good to say the least. Even if we rely heavily on other tools for core functionalities (language statistics, license detection, git information), the post processing done by Onefetch adds a "significant" overhead - Moving forward, will require specific benchmarks to account for performance gain/losses - But a quick test on a relatively large repo Linux can give us a first idea:

o2sh:~/dev/linux (master) $ time onefetch --> 0m34,531s
o2sh:~/dev/linux (master) $ time tokei --> 0m11,897s

To achieve good performance some fundamental changes have to be made. Doing that will take a while because it makes it necessary to replace some core abstractions. The good news is that improving or even replacing those abstractions will have other benefits beside improved performance.


There are three primary paths for improving performance:

  1. Refactoring
  2. Caching
  3. Asynchronicity/Multi-threading

So aside from this overview, these changes will also be discussed independently, in dedicated issues.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions