Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • A awesome-python
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 13
    • Issues 13
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 317
    • Merge requests 317
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Vinta Chen
  • awesome-python
  • Merge requests
  • !1559

Add the Fil memory profiler

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Administrator requested to merge github/fork/itamarst/patch-1 into master Jun 19, 2020
  • Overview 1
  • Commits 1
  • Pipelines 1
  • Changes 1

Created by: itamarst

What is this Python project?

Fil is a memory profiler aimed at data batch processing applications.

What's the difference between this Python project and similar ones?

  1. Fil figures out peak memory usage, and then tells you which function stacks were responsible for allocating it.
  2. Fil can dump the source of allocations when your program crashes due to lack of memory.
  3. Fil can track any allocation made via standard C memory allocation APIs, not just Python-native code.
  4. You get lovely flamegraphs, so you can visually see exactly where memory came from (https://pythonspeed.com/products/filmemoryprofiler/memory-graph.svg)

Compared to other tools:

  • memory-profiler tells you how much a line of code has allocated, and that's it. So you need to manually apply it to each function that gets called, and it can be very easy to miss that one place where memory spiked by 1GB and then immediately dropped, because it's on a single line.
  • tracemalloc can't handle non-Python memory allocations.

--

Anyone who agrees with this pull request could submit an Approve review to it.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/itamarst/patch-1