Branch: refs/heads/master Home: https://github.com/synfig/synfig Commit: 7306cdbca45a409e0c02e72db817f4fadf341bcb https://github.com/synfig/synfig/commit/7306cdbca45a409e0c02e72db817f4fadf341bcb Author: ice0 <konop...@gmail.com> Date: 2022-10-10 (Mon, 10 Oct 2022)
Changed paths: M synfig-core/src/modules/mod_noise/valuenode_random.cpp M synfig-core/src/synfig/valuenode.cpp M synfig-core/src/synfig/valuenode.h M synfig-core/src/synfig/valuenodes/valuenode_add.cpp M synfig-core/src/synfig/valuenodes/valuenode_and.cpp M synfig-core/src/synfig/valuenodes/valuenode_anglestring.cpp M synfig-core/src/synfig/valuenodes/valuenode_animatedfile.cpp M synfig-core/src/synfig/valuenodes/valuenode_atan2.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinecalctangent.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinecalcvertex.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinecalcwidth.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinereversetangent.cpp M synfig-core/src/synfig/valuenodes/valuenode_bone.cpp M synfig-core/src/synfig/valuenodes/valuenode_bonelink.cpp M synfig-core/src/synfig/valuenodes/valuenode_compare.cpp M synfig-core/src/synfig/valuenodes/valuenode_composite.cpp M synfig-core/src/synfig/valuenodes/valuenode_cos.cpp M synfig-core/src/synfig/valuenodes/valuenode_derivative.cpp M synfig-core/src/synfig/valuenodes/valuenode_dotproduct.cpp M synfig-core/src/synfig/valuenodes/valuenode_duplicate.cpp M synfig-core/src/synfig/valuenodes/valuenode_dynamic.cpp M synfig-core/src/synfig/valuenodes/valuenode_exp.cpp M synfig-core/src/synfig/valuenodes/valuenode_gradientcolor.cpp M synfig-core/src/synfig/valuenodes/valuenode_gradientrotate.cpp M synfig-core/src/synfig/valuenodes/valuenode_greyed.cpp M synfig-core/src/synfig/valuenodes/valuenode_integer.cpp M synfig-core/src/synfig/valuenodes/valuenode_intstring.cpp M synfig-core/src/synfig/valuenodes/valuenode_join.cpp M synfig-core/src/synfig/valuenodes/valuenode_linear.cpp M synfig-core/src/synfig/valuenodes/valuenode_log.cpp M synfig-core/src/synfig/valuenodes/valuenode_modulo.cpp M synfig-core/src/synfig/valuenodes/valuenode_not.cpp M synfig-core/src/synfig/valuenodes/valuenode_or.cpp M synfig-core/src/synfig/valuenodes/valuenode_pow.cpp M synfig-core/src/synfig/valuenodes/valuenode_radialcomposite.cpp M synfig-core/src/synfig/valuenodes/valuenode_range.cpp M synfig-core/src/synfig/valuenodes/valuenode_real.cpp M synfig-core/src/synfig/valuenodes/valuenode_realstring.cpp M synfig-core/src/synfig/valuenodes/valuenode_reciprocal.cpp M synfig-core/src/synfig/valuenodes/valuenode_reference.cpp M synfig-core/src/synfig/valuenodes/valuenode_repeat_gradient.cpp M synfig-core/src/synfig/valuenodes/valuenode_reverse.cpp M synfig-core/src/synfig/valuenodes/valuenode_scale.cpp M synfig-core/src/synfig/valuenodes/valuenode_segcalctangent.cpp M synfig-core/src/synfig/valuenodes/valuenode_segcalcvertex.cpp M synfig-core/src/synfig/valuenodes/valuenode_sine.cpp M synfig-core/src/synfig/valuenodes/valuenode_step.cpp M synfig-core/src/synfig/valuenodes/valuenode_stripes.cpp M synfig-core/src/synfig/valuenodes/valuenode_subtract.cpp M synfig-core/src/synfig/valuenodes/valuenode_switch.cpp M synfig-core/src/synfig/valuenodes/valuenode_timedswap.cpp M synfig-core/src/synfig/valuenodes/valuenode_timeloop.cpp M synfig-core/src/synfig/valuenodes/valuenode_timestring.cpp M synfig-core/src/synfig/valuenodes/valuenode_twotone.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectorangle.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectorlength.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectorx.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectory.cpp Log Message: ----------- refactor: vocabulary initialization moved to `init_children_vocab` method Just to make sure it's not being used somewhere. I added a test flag (already removed here) to see if `get_children_vocab` can be used to fill a dictionary after it has already been initialized. This test is never fired. This is done because `get_children_vocab()` always copies data, even when you just want to read it, so the splitting logic allows us to reduce memory copying in the future. Commit: 2dfdbd40ed01c4ce8ff2e4db723679253b3c1f5f https://github.com/synfig/synfig/commit/2dfdbd40ed01c4ce8ff2e4db723679253b3c1f5f Author: ice0 <konop...@gmail.com> Date: 2022-10-10 (Mon, 10 Oct 2022) Changed paths: M synfig-core/src/synfig/valuenode.cpp M synfig-core/src/synfig/valuenode.h M synfig-studio/src/gui/instance.cpp M synfig-studio/src/gui/trees/canvastreestore.cpp M synfig-studio/src/synfigapp/actions/valuedesclink.cpp M synfig-studio/src/synfigapp/instance.cpp Log Message: ----------- perf: improved performance by reducing memory copying when working with valuenodes Linux unoptimized (994622b) ``` ./synfig -o pirates.png -t null 3,54s user 0,35s system 110% cpu 3,538 total ./synfig -o pirates.png -t null 3,56s user 0,24s system 109% cpu 3,482 total ./synfig -o pirates.png -t null 3,49s user 0,35s system 110% cpu 3,481 total ``` Avg: 3500 ms Linux optimized ``` ./synfig -o pirates.png -t null 2,94s user 0,32s system 110% cpu 2,948 total ./synfig -o pirates.png -t null 2,98s user 0,31s system 112% cpu 2,931 total ./synfig -o pirates.png -t null 2,96s user 0,37s system 112% cpu 2,954 total ``` Avg: 2 944 ms. Improvement: **+18,8%** macOS unoptimized (994622b) ``` ./synfig synfig-core/examples/pirates.sif -o - 2,57s user 0,31s system 108% cpu 2,640 total ./synfig synfig-core/examples/pirates.sif -o - 2,57s user 0,30s system 108% cpu 2,640 total ./synfig synfig-core/examples/pirates.sif -o - 2,58s user 0,30s system 108% cpu 2,649 total ``` Avg: 2 643 ms macOS optimized ``` ./synfig synfig-core/examples/pirates.sif -o - 2,03s user 0,31s system 111% cpu 2,100 total ./synfig synfig-core/examples/pirates.sif -o - 2,03s user 0,31s system 111% cpu 2,103 total ./synfig synfig-core/examples/pirates.sif -o - 2,03s user 0,31s system 111% cpu 2,102 total ``` Avg: 2 102 ms. Improvement: **+25,7%** Windows unoptimized (994622b) ``` Execution time: 5.983 s Execution time: 5.939 s Execution time: 5.927 s ``` Avg: 5949 Windows optimized ``` Execution time: 4.694 s Execution time: 4.697 s Execution time: 4.696 s ``` Avg: 4 696 ms Improvement: **+26,6%** Commit: f8e4f299b3ac64ea2edc1bc40364943b965e9ab9 https://github.com/synfig/synfig/commit/f8e4f299b3ac64ea2edc1bc40364943b965e9ab9 Author: ice0 <konop...@gmail.com> Date: 2022-10-10 (Mon, 10 Oct 2022) Changed paths: M synfig-core/src/synfig/valuenodes/valuenode_dynamiclist.cpp M synfig-core/src/synfig/valuenodes/valuenode_staticlist.cpp Log Message: ----------- refactor: added vocab update for list valuenodes List valuenodes should update they vocabulary after adding/removing list items. Commit: 6ae600b7e530e74aaec377336b9d9a824371a49a https://github.com/synfig/synfig/commit/6ae600b7e530e74aaec377336b9d9a824371a49a Author: ice0 <konop...@gmail.com> Date: 2022-10-10 (Mon, 10 Oct 2022) Changed paths: M synfig-core/src/modules/mod_noise/valuenode_random.cpp M synfig-core/src/synfig/valuenode.cpp M synfig-core/src/synfig/valuenode.h M synfig-core/src/synfig/valuenodes/valuenode_add.cpp M synfig-core/src/synfig/valuenodes/valuenode_and.cpp M synfig-core/src/synfig/valuenodes/valuenode_anglestring.cpp M synfig-core/src/synfig/valuenodes/valuenode_animatedfile.cpp M synfig-core/src/synfig/valuenodes/valuenode_atan2.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinecalctangent.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinecalcvertex.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinecalcwidth.cpp M synfig-core/src/synfig/valuenodes/valuenode_blinereversetangent.cpp M synfig-core/src/synfig/valuenodes/valuenode_bone.cpp M synfig-core/src/synfig/valuenodes/valuenode_bonelink.cpp M synfig-core/src/synfig/valuenodes/valuenode_compare.cpp M synfig-core/src/synfig/valuenodes/valuenode_composite.cpp M synfig-core/src/synfig/valuenodes/valuenode_cos.cpp M synfig-core/src/synfig/valuenodes/valuenode_derivative.cpp M synfig-core/src/synfig/valuenodes/valuenode_dotproduct.cpp M synfig-core/src/synfig/valuenodes/valuenode_duplicate.cpp M synfig-core/src/synfig/valuenodes/valuenode_dynamic.cpp M synfig-core/src/synfig/valuenodes/valuenode_dynamiclist.cpp M synfig-core/src/synfig/valuenodes/valuenode_exp.cpp M synfig-core/src/synfig/valuenodes/valuenode_gradientcolor.cpp M synfig-core/src/synfig/valuenodes/valuenode_gradientrotate.cpp M synfig-core/src/synfig/valuenodes/valuenode_greyed.cpp M synfig-core/src/synfig/valuenodes/valuenode_integer.cpp M synfig-core/src/synfig/valuenodes/valuenode_intstring.cpp M synfig-core/src/synfig/valuenodes/valuenode_join.cpp M synfig-core/src/synfig/valuenodes/valuenode_linear.cpp M synfig-core/src/synfig/valuenodes/valuenode_log.cpp M synfig-core/src/synfig/valuenodes/valuenode_modulo.cpp M synfig-core/src/synfig/valuenodes/valuenode_not.cpp M synfig-core/src/synfig/valuenodes/valuenode_or.cpp M synfig-core/src/synfig/valuenodes/valuenode_pow.cpp M synfig-core/src/synfig/valuenodes/valuenode_radialcomposite.cpp M synfig-core/src/synfig/valuenodes/valuenode_range.cpp M synfig-core/src/synfig/valuenodes/valuenode_real.cpp M synfig-core/src/synfig/valuenodes/valuenode_realstring.cpp M synfig-core/src/synfig/valuenodes/valuenode_reciprocal.cpp M synfig-core/src/synfig/valuenodes/valuenode_reference.cpp M synfig-core/src/synfig/valuenodes/valuenode_repeat_gradient.cpp M synfig-core/src/synfig/valuenodes/valuenode_reverse.cpp M synfig-core/src/synfig/valuenodes/valuenode_scale.cpp M synfig-core/src/synfig/valuenodes/valuenode_segcalctangent.cpp M synfig-core/src/synfig/valuenodes/valuenode_segcalcvertex.cpp M synfig-core/src/synfig/valuenodes/valuenode_sine.cpp M synfig-core/src/synfig/valuenodes/valuenode_staticlist.cpp M synfig-core/src/synfig/valuenodes/valuenode_step.cpp M synfig-core/src/synfig/valuenodes/valuenode_stripes.cpp M synfig-core/src/synfig/valuenodes/valuenode_subtract.cpp M synfig-core/src/synfig/valuenodes/valuenode_switch.cpp M synfig-core/src/synfig/valuenodes/valuenode_timedswap.cpp M synfig-core/src/synfig/valuenodes/valuenode_timeloop.cpp M synfig-core/src/synfig/valuenodes/valuenode_timestring.cpp M synfig-core/src/synfig/valuenodes/valuenode_twotone.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectorangle.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectorlength.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectorx.cpp M synfig-core/src/synfig/valuenodes/valuenode_vectory.cpp M synfig-studio/src/gui/instance.cpp M synfig-studio/src/gui/trees/canvastreestore.cpp M synfig-studio/src/synfigapp/actions/valuedesclink.cpp M synfig-studio/src/synfigapp/instance.cpp Log Message: ----------- perf: improved performance by reducing memory copying when working with valuenodes (#2831) perf: improved performance by reducing memory copying when working with valuenodes Compare: https://github.com/synfig/synfig/compare/a747d1cdf902...6ae600b7e530 _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl