Skip to content

serialize instead of deepcopy for performance gains #118

serialize instead of deepcopy for performance gains

serialize instead of deepcopy for performance gains #118

Triggered via pull request October 26, 2024 03:04
Status Success
Total duration 19m 53s
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: 705 ms +- 49 ms ......................................... create_10_000_run_trees: Mean +- std dev: 1.35 sec +- 0.07 sec ......................................... create_20_000_run_trees: Mean +- std dev: 1.35 sec +- 0.07 sec ......................................... dumps_class_nested_py_branch_and_leaf_200x400: Mean +- std dev: 767 us +- 16 us ......................................... dumps_class_nested_py_leaf_50x100: Mean +- std dev: 27.2 ms +- 0.3 ms ......................................... dumps_class_nested_py_leaf_100x200: Mean +- std dev: 112 ms +- 3 ms ......................................... dumps_dataclass_nested_50x100: Mean +- std dev: 27.5 ms +- 0.3 ms ......................................... WARNING: the benchmark result may be unstable * the standard deviation (6.89 ms) is 12% of the mean (59.3 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: 59.3 ms +- 6.9 ms ......................................... WARNING: the benchmark result may be unstable * the standard deviation (29.6 ms) is 14% of the mean (216 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: 216 ms +- 30 ms
Comparison against main: python/langsmith/_internal/_background_thread.py#L1
+-----------------------------------------------+----------+------------------------+ | Benchmark | main | changes | +===============================================+==========+========================+ | dumps_class_nested_py_branch_and_leaf_200x400 | 763 us | 767 us: 1.01x slower | +-----------------------------------------------+----------+------------------------+ | dumps_class_nested_py_leaf_100x200 | 111 ms | 112 ms: 1.01x slower | +-----------------------------------------------+----------+------------------------+ | dumps_class_nested_py_leaf_50x100 | 26.8 ms | 27.2 ms: 1.01x slower | +-----------------------------------------------+----------+------------------------+ | dumps_dataclass_nested_50x100 | 27.1 ms | 27.5 ms: 1.02x slower | +-----------------------------------------------+----------+------------------------+ | create_10_000_run_trees | 1.13 sec | 1.35 sec: 1.20x slower | +-----------------------------------------------+----------+------------------------+ | create_20_000_run_trees | 1.11 sec | 1.35 sec: 1.22x slower | +-----------------------------------------------+----------+------------------------+ | create_5_000_run_trees | 565 ms | 705 ms: 1.25x slower | +-----------------------------------------------+----------+------------------------+ | Geometric mean | (ref) | 1.08x slower | +-----------------------------------------------+----------+------------------------+ Benchmark hidden because not significant (2): dumps_pydanticv1_nested_50x100, dumps_pydantic_nested_50x100