⚡️ Speed up method Tooltips._pseudo_css by 34%
#386
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📄 34% (0.34x) speedup for
Tooltips._pseudo_cssinpandas/io/formats/style_render.py⏱️ Runtime :
184 microseconds→137 microseconds(best of250runs)📝 Explanation and details
The optimized code achieves a 33% speedup by eliminating redundant string concatenation operations in the
_pseudo_cssmethod.Key optimization:
"#T_" + uuid + "_row" + str(row) + "_col" + str(col), then concatenated again twice for the two CSS selectorsf"#T_{uuid}_row{row}_col{col}"and stored inbase_selector, then reused via f-string interpolationWhy this is faster:
Performance characteristics from tests:
Impact on workloads: This optimization is especially beneficial when styling large DataFrames with many cells requiring tooltips, as the
_pseudo_cssmethod would be called once per tooltip-enabled cell. The cumulative effect of reducing string operations per call provides substantial performance gains in tooltip-heavy styling scenarios.✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-Tooltips._pseudo_css-mio7oay7and push.