Skip to main content

TAMPPA: Time And Memory Profile PArser


As a maiden attampt, I hope to make it super useful for the community. Please report bugs and make pull requests to improve it.


Introduction:

TAMPPA is a supporting package for the popular profilers

Both the packages do an excellent job by providing profiling results on the terminal.

Total time: 0.181071 s
File: main.py
Function: linearRegressionfit at line 35

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    35                                           @profile
    36                                           def linearRegressionfit(Xt,Yt,Xts,Yts):
    37         1         52.0     52.0      0.1      lr=LinearRegression()
    38         1      28942.0  28942.0     75.2      model=lr.fit(Xt,Yt)
    39         1       1347.0   1347.0      3.5      predict=lr.predict(Xts)
    40                                           
    41         1       4924.0   4924.0     12.8      print("train Accuracy",lr.score(Xt,Yt))
    42         1       3242.0   3242.0      8.4      print("test Accuracy",lr.score(Xts,Yts))

But, there seems to be no method to get these stats in a exportable file that can be used with flexibility.

On dumping the logs to a .txt file still requires an individual to parse data from the text by self and then convert the content into a .csv file; which is a common format for sharing statistical data and plotting using MATPLOTLIB.

This is exactly what TAMPPA does ! It outputs one .csv file per function and another text file func_names.txt and again_func_names.txt for accessing these files easily.

Pre-requisites:

Note: Both the parsers need a .txt file to parse results from

  • Run both the profilers or the profiler whose results you need as a csv, and save the logs on the console to a .txt file. For e.g saving the memory profiling results of the python application mainm.py and saving the results to mem_res_1.txt
$ python -m memory_profiler mainm.py > mem_res_1.txt
  • Avoid printing anything on the console. Try it with python main.py and nothing should be printed to the console. So, comment out all the print and log statements.

Installation

Any particular release can be installed using pip:

$ pip install tamppa

To enter development mode,

$ git clone https://github.com/pra-dan/TAMPPA.git

Usage

Refer to the following once the Installation is over.

Time Profile Parser

Initially, if we have only the .txt file.

.
└── tim_prof_results.txt
0 directories, 1 file

Run tim_parse or time parser, in a Python environment ($ python)

>>> from tamppa import tim_parse
>>> tim_parse("tim_prof_results.txt")

On successful execution, the lonely directory is populated as

.
├── again_func_names.txt
├── import_data_tim_.csv
├── linearRegressionfit_tim_.csv
├── parse_data_tim_.csv
├── randForestRegressorfit_tim_.csv
└── tim_prof_results.txt

0 directories, 6 files

Additionally, a plot is also generated as mem_res

Memory Profile Parser

Similarly, if we have only the .txt file for the memory_profiler.

.
└── mem_res_1.txt

0 directories, 1 file

Run mem_parse or time parser, in a Python environment ($ python)

>>> from tamppa import mem_parse
>>> mem_parse("mem_res_1.txt")

On successful execution, the lonely directory is populated as

.
├── func_names.txt
├── function_wise_time_results.csv
├── import_data_mem_.csv
├── linearRegressionfit_mem_.csv
├── mem_res_1.txt
├── parse_data_mem_.csv
└── randForestRegressorfit_mem_.csv

0 directories, 7 files

Additionally, a plot is also generated as mem_res

TODOs:

  • (Provide the entire package a executable-like interface; such that the parsers can be called simply as $ mem_parse file.txt -plot true)

  • (Add flags to toggle plots for both parsers)

References:

Release files for TAMPPA 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for TAMPPA 0.0.1
File Size Uploaded
TAMPPA-0.0.1.tar.gz 38.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for TAMPPA 0.0.1
File Interpreter ABI Platform
TAMPPA-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size:54.3 kB

Release files / TAMPPA-0.0.1.tar.gz

Download URL TAMPPA-0.0.1.tar.gz
Size 38.9 kB
Tags Source
SHA-256 checksum
How to use checksums
171c6a013ccbfb6a039b99311b6d246d0fa4114684bf2991cfac46f6cfc7e60b
BLAKE2b-256 checksum
How to use checksums
ba2408aa0b2a42e7b91479cc2af347607c0300be740da899de3e9e4fb567ac60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9

Release files / TAMPPA-0.0.1-py3-none-any.whl

Download URL TAMPPA-0.0.1-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2b23d7ebca9877adbe984b536cdacf288257b493fb2b3ac0e4837ae104cb3b4
BLAKE2b-256 checksum
How to use checksums
71cc7a78befdf431cdff662127f046537d1a9bc6f196834c62c5b5fe23b4dd7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page