ansys / ansys/pydynamicreporting
Audit conservative performance improvements across core and HTML export
- Dominant language
- Python
- Stars
- 12
- Forks
- 5
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 9
Description
Core contains repeated byte/string copying, JSON parsing, template-list scans and array allocation that can be reduced. The performance opportunities below include exact current code, proposed changes and concrete compatibility requirements.
The complete audit contains **39 performance opportunities and 5 decisions to preserve existing behavior**, including all **62 methods** with repeated parameter parsing.
| Part | Contents |
| --- | --- |
| [1](https://github.com/ansys/pydynamicreporting/issues/623#issuecomment-5548093491) | H01–H05 and C01 (first methods) |
| [2](https://github.com/ansys/pydynamicreporting/issues/623#issuecomment-5548094706) | C01 (continued methods) |
| [3](https://github.com/ansys/pydynamicreporting/issues/623#issuecomment-5548095211) | C01 (remaining methods), C02–C05, S01–S05, U01–U05 and D01–D07 |
| [4](https://github.com/ansys/pydynamicreporting/issues/623#issuecomment-5548095617) | D07 (continued), D08, M01–M09, P01–P02 and R01–R05 |
Suggested starting points:
1. H01–H03: Buffer downloaded bytes and assemble HTML/viewer replacements once per pass.
2. C01–C02: Parse parameters once per call and index template GUIDs once per JSON export.
3. C03–C05 and S01–S05: Reduce array copying, VTK per-point calls, proxy bookkeeping and repeated validation setup.
4. D01–D08 and M01–M09: Resolve the stated compatibility differences for database, network, caching and utility changes.
5. P01–P02 and R01–R05: Keep installation changes separate and preserve rendering, serialization and lifecycle behavior.
**Source revision:** [e6849dbd](https://github.com/ansys/pydynamicreporting/tree/e6849dbd2d1c66a40a14d39d21de47a492f2bcb6).
**Scope:** All 33 tracked Python modules under `src/ansys/dynamicreporting/core`, relevant generation inputs, and the supplied Ansys Student v261 model/rendering/viewer integration.
**Requirements:** Preserve behavior, backwards compatibility, public APIs, output ordering, errors, asset handling and object identity. Add no third-party packages.
Contributor guide
Assessment
This issue has not been assessed yet.