Skip to content

Python: high performance backend #8

Description

@imagovrn

More Efficient Python Implementation

Current flatdata-py implementation is pure python. So far we have used it only for processing smaller datasets and for inspection/debugging. It was noticed that on large datasets it performs quite slowly. It would be useful to have an implementation with performance not too far from C++ one. In order to achieve that, we could do following:

  • Benchmark two implementations on the same data, to know the gap, monitor the benchmarks in CI. Performance benchmarks #9
  • Optimize pure-python implementation.
  • Introduce parallel processing in pure python implementation (or ease integration with a library that would do it for us, like dask).
  • As an alternative approach, create flatdata-py-ext implementation which would build and use binary extensions to improve performance.

Activity

  1. boxdot commented on Jan 27, 2018

    @boxdot
    Contributor

    As far as I understand, the python implementation is fully functional.

    I think we should make this issue more precise. E.g. by specifying what performance problems you see right now. Some benchmark numbers could also help. This would enable us either to split this issue or introduce a precise check-list what needs to be done.

  2. imagovrn commented on Jan 27, 2018

    @imagovrn
    ContributorAuthor

    @boxdot Thanks for the comment. Updated the issue. And should stop creating items here from phone, not to confuse anybody.

  3. gferon commented on Feb 6, 2018

    @gferon
    Contributor

    I'm curious, do you already have something that we could commit to produce performance figures? i.e. compare C++ implementation vs the Python implementation with different Python runtimes (CPython, PyPy, ...)

  4. imagovrn commented on Feb 9, 2018

    @imagovrn
    ContributorAuthor

    @gferon not yet. That'd be #9

  5. VeaaC commented on Apr 27, 2026

    @VeaaC
    Collaborator

    Done in #259

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions