Skip to content

perf: fix RegexIdentifier.check regression#218

Merged
bee-san merged 2 commits intobee-san:mainfrom
P403n1x87:perf-regex-identifier-check-shallow
Oct 22, 2021
Merged

perf: fix RegexIdentifier.check regression#218
bee-san merged 2 commits intobee-san:mainfrom
P403n1x87:perf-regex-identifier-check-shallow

Conversation

@P403n1x87
Copy link
Copy Markdown
Contributor

⚠ Pull Requests not made with this template will be automatically closed 🔥

Prerequisites

Why do we need this pull request?

It looks like #167 has introduced a performance regression by adding what seems to be an unnecessary deep copy. A shallow dictionary copy seems to work just fine.

Profiling data collected with Austin shows the before/after difference when running test_json_printing3

Before

regex_identifier_check_before

After

regex_identifier_check_after

What GitHub issues does this fix?

A performance regression

Copy / paste of output

poetry run pywhat fixtures/file | grep -A 2 -B 1 'Twilio Account SID'
Matched on: ACAQDrnjkGtf3iA46rtwsvRiscvMTCw30l
Name: Twilio Account SID
Exploit: Use the command below to verify that the SID is valid:
  $ curl -X GET 'https://api.twilio.com/2010-04-01/Accounts.json' -u ACAQDrnjkGtf3iA46rtwsvRiscvMTCw30l:[AUTH_TOKEN]
--
Matched on: ACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjg
Name: Twilio Account SID
Exploit: Use the command below to verify that the SID is valid:
  $ curl -X GET 'https://api.twilio.com/2010-04-01/Accounts.json' -u ACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjg:[AUTH_TOKEN]
--
Matched on: ACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzr
Name: Twilio Account SID
Exploit: Use the command below to verify that the SID is valid:
  $ curl -X GET 'https://api.twilio.com/2010-04-01/Accounts.json' -u ACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzr:[AUTH_TOKEN]

It looks like bee-san#167 has introduced a performance regression
by adding what seems to be an unnecessary deep copy. A
shallow dictionary copy seems to work just fine.
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Oct 20, 2021

Codecov Report

Merging #218 (a80cabd) into main (b04de11) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #218      +/-   ##
==========================================
- Coverage   92.52%   92.51%   -0.01%     
==========================================
  Files          14       14              
  Lines        1204     1203       -1     
==========================================
- Hits         1114     1113       -1     
  Misses         90       90              
Impacted Files Coverage Δ
pywhat/regex_identifier.py 92.50% <100.00%> (-0.19%) ⬇️

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 b04de11...a80cabd. Read the comment docs.

Copy link
Copy Markdown
Owner

@bee-san bee-san left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is super cool 👏🏻

@bee-san bee-san enabled auto-merge October 22, 2021 08:57
@bee-san bee-san merged commit 0ef8cc8 into bee-san:main Oct 22, 2021
@P403n1x87 P403n1x87 deleted the perf-regex-identifier-check-shallow branch October 22, 2021 10:46
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.

3 participants