Skip to content

Add Benchmark for Performance Testing#781

Merged
MartinThoma merged 4 commits intomainfrom
benchmarks
Apr 21, 2022
Merged

Add Benchmark for Performance Testing#781
MartinThoma merged 4 commits intomainfrom
benchmarks

Conversation

@MartinThoma
Copy link
Copy Markdown
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
Copy Markdown

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
Copy Markdown
Member Author

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

@MartinThoma
Copy link
Copy Markdown
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.

2 participants