Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Benchmark for Performance Testing #781

Merged
merged 4 commits into from
Apr 21, 2022
Merged

Add Benchmark for Performance Testing #781

merged 4 commits into from
Apr 21, 2022

Conversation

MartinThoma
Copy link
Member

@MartinThoma MartinThoma commented Apr 19, 2022

Using https://github.com/benchmark-action/github-action-benchmark and pytest-benchmark for performance testing

See #761

TODO

  • Define common scenarios which we want to benchmark
  • Add headings / an explanation to the benchmark page if possible

@codecov-commenter
Copy link

codecov-commenter commented Apr 19, 2022

Codecov Report

Merging #781 (1305df6) into main (4c78b54) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #781   +/-   ##
=======================================
  Coverage   75.28%   75.28%           
=======================================
  Files          11       11           
  Lines        3508     3508           
  Branches      809      809           
=======================================
  Hits         2641     2641           
  Misses        654      654           
  Partials      213      213           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4c78b54...1305df6. Read the comment docs.

@MartinThoma MartinThoma force-pushed the benchmarks branch 3 times, most recently from 6adf8eb to 4d77a6a Compare April 19, 2022 12:23
We want to track performance over time only for what actually
is in master.

I would love it if we got a warning if performance is regressing
within a PR, but the performance tracking part should only be
there for main
@MartinThoma
Copy link
Member Author

@MasterOdin https://py-pdf.github.io/PyPDF2/dev/bench/ might be something you could be interested in :-)

@MartinThoma
Copy link
Member Author

We still need meaningful benchmark scenarios, but the setup / the visualization looks as if this could go in the right direction

@MartinThoma MartinThoma merged commit f0f1fa3 into main Apr 21, 2022
@MartinThoma MartinThoma deleted the benchmarks branch April 21, 2022 16:19
MartinThoma added a commit that referenced this pull request Apr 24, 2022
A change I would like to highlight is the performance improvement for
large PDF files (#808) 🎉

New Features (ENH):
-  Add papersizes (#800)
-  Allow setting permission flags when encrypting (#803)
-  Allow setting form field flags (#802)

Bug Fixes (BUG):
-  TypeError in xmp._converter_date (#813)
-  Improve spacing for text extraction (#806)
-  Fix PDFDocEncoding Character Set (#809)

Robustness (ROB):
-  Use null ID when encrypted but no ID given (#812)
-  Handle recursion error (#804)

Documentation (DOC):
-  CMaps (#811)
-  The PDF Format + commit prefixes (#810)
-  Add compression example (#792)

Developer Experience (DEV):
-  Add Benchmark for Performance Testing (#781)

Maintenance (MAINT):
-  Validate PDF magic byte in strict mode (#814)
-  Make PdfFileMerger.addBookmark() behave life PdfFileWriters\' (#339)
-  Quadratic runtime while parsing reduced to linear  (#808)

Testing (TST):
-  Newlines in text extraction (#807)

Full Changelog: 1.27.8...1.27.9
VictorCarlquist pushed a commit to VictorCarlquist/PyPDF2 that referenced this pull request Apr 29, 2022
We want to track performance over time only for what actually
is in main.

Closes py-pdf#761
VictorCarlquist pushed a commit to VictorCarlquist/PyPDF2 that referenced this pull request Apr 29, 2022
A change I would like to highlight is the performance improvement for
large PDF files (py-pdf#808) 🎉

New Features (ENH):
-  Add papersizes (py-pdf#800)
-  Allow setting permission flags when encrypting (py-pdf#803)
-  Allow setting form field flags (py-pdf#802)

Bug Fixes (BUG):
-  TypeError in xmp._converter_date (py-pdf#813)
-  Improve spacing for text extraction (py-pdf#806)
-  Fix PDFDocEncoding Character Set (py-pdf#809)

Robustness (ROB):
-  Use null ID when encrypted but no ID given (py-pdf#812)
-  Handle recursion error (py-pdf#804)

Documentation (DOC):
-  CMaps (py-pdf#811)
-  The PDF Format + commit prefixes (py-pdf#810)
-  Add compression example (py-pdf#792)

Developer Experience (DEV):
-  Add Benchmark for Performance Testing (py-pdf#781)

Maintenance (MAINT):
-  Validate PDF magic byte in strict mode (py-pdf#814)
-  Make PdfFileMerger.addBookmark() behave life PdfFileWriters\' (py-pdf#339)
-  Quadratic runtime while parsing reduced to linear  (py-pdf#808)

Testing (TST):
-  Newlines in text extraction (py-pdf#807)

Full Changelog: py-pdf/pypdf@1.27.8...1.27.9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants