Skip to content

serialize instead of deepcopy for performance gains #115

serialize instead of deepcopy for performance gains

serialize instead of deepcopy for performance gains #115

Triggered via pull request October 26, 2024 02:56
Status Success
Total duration 22m 7s
Artifacts

py-bench.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

1 warning and 2 notices
benchmark
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Benchmark results: python/langsmith/_internal/_background_thread.py#L1
......................................... create_5_000_run_trees: Mean +- std dev: 704 ms +- 56 ms ......................................... create_10_000_run_trees: Mean +- std dev: 1.32 sec +- 0.07 sec ......................................... create_20_000_run_trees: Mean +- std dev: 1.33 sec +- 0.08 sec ......................................... dumps_class_nested_py_branch_and_leaf_200x400: Mean +- std dev: 771 us +- 9 us ......................................... dumps_class_nested_py_leaf_50x100: Mean +- std dev: 27.3 ms +- 0.3 ms ......................................... dumps_class_nested_py_leaf_100x200: Mean +- std dev: 112 ms +- 2 ms ......................................... dumps_dataclass_nested_50x100: Mean +- std dev: 27.6 ms +- 0.3 ms ......................................... WARNING: the benchmark result may be unstable * the standard deviation (7.25 ms) is 12% of the mean (60.8 ms) Try to rerun the benchmark with more runs, values and/or loops. Run 'python -m pyperf system tune' command to reduce the system jitter. Use pyperf stats, pyperf dump and pyperf hist to analyze results. Use --quiet option to hide these warnings. dumps_pydantic_nested_50x100: Mean +- std dev: 60.8 ms +- 7.3 ms ......................................... WARNING: the benchmark result may be unstable * the standard deviation (32.4 ms) is 15% of the mean (220 ms) Try to rerun the benchmark with more runs, values and/or loops. Run 'python -m pyperf system tune' command to reduce the system jitter. Use pyperf stats, pyperf dump and pyperf hist to analyze results. Use --quiet option to hide these warnings. dumps_pydanticv1_nested_50x100: Mean +- std dev: 220 ms +- 32 ms
Comparison against main: python/langsmith/_internal/_background_thread.py#L1
+-----------------------------------------------+----------+------------------------+ | Benchmark | main | changes | +===============================================+==========+========================+ | dumps_class_nested_py_branch_and_leaf_200x400 | 763 us | 771 us: 1.01x slower | +-----------------------------------------------+----------+------------------------+ | dumps_class_nested_py_leaf_100x200 | 111 ms | 112 ms: 1.01x slower | +-----------------------------------------------+----------+------------------------+ | dumps_dataclass_nested_50x100 | 27.1 ms | 27.6 ms: 1.02x slower | +-----------------------------------------------+----------+------------------------+ | dumps_class_nested_py_leaf_50x100 | 26.8 ms | 27.3 ms: 1.02x slower | +-----------------------------------------------+----------+------------------------+ | dumps_pydantic_nested_50x100 | 57.8 ms | 60.8 ms: 1.05x slower | +-----------------------------------------------+----------+------------------------+ | create_10_000_run_trees | 1.13 sec | 1.32 sec: 1.18x slower | +-----------------------------------------------+----------+------------------------+ | create_20_000_run_trees | 1.11 sec | 1.33 sec: 1.20x slower | +-----------------------------------------------+----------+------------------------+ | create_5_000_run_trees | 565 ms | 704 ms: 1.24x slower | +-----------------------------------------------+----------+------------------------+ | Geometric mean | (ref) | 1.08x slower | +-----------------------------------------------+----------+------------------------+ Benchmark hidden because not significant (1): dumps_pydanticv1_nested_50x100