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

Reply via email to