Branch: refs/heads/v1.4.x
  Home:   https://github.com/synfig/synfig
  Commit: d4ea57d16ce0bd767a26bce0d46f904175f6e4e3
      
https://github.com/synfig/synfig/commit/d4ea57d16ce0bd767a26bce0d46f904175f6e4e3
  Author: Konstantin Dmitriev <ksee.zelga...@gmail.com>
  Date:   2022-09-26 (Mon, 26 Sep 2022)

  Changed paths:
    M synfig-core/src/synfig/bone.cpp
    M synfig-core/src/synfig/canvas.cpp
    M synfig-core/src/synfig/general.h
    M synfig-core/src/synfig/layer.cpp
    M synfig-core/src/synfig/layers/layer_skeleton.cpp
    M synfig-core/src/synfig/loadcanvas.cpp
    M synfig-core/src/synfig/node.cpp
    M synfig-core/src/synfig/savecanvas.cpp
    M synfig-core/src/synfig/transform.cpp
    M synfig-core/src/synfig/valuenode.cpp
    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_animatedinterface.cpp
    M synfig-core/src/synfig/valuenodes/valuenode_atan2.cpp
    M synfig-core/src/synfig/valuenodes/valuenode_average.cpp
    M synfig-core/src/synfig/valuenodes/valuenode_bline.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_boneinfluence.cpp
    M synfig-core/src/synfig/valuenodes/valuenode_bonelink.cpp
    M synfig-core/src/synfig/valuenodes/valuenode_boneweightpair.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_const.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_dilist.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_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_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-core/src/synfig/valuenodes/valuenode_weightedaverage.cpp
    M synfig-core/src/synfig/valuenodes/valuenode_wplist.cpp
    M synfig-studio/src/gui/canvasview.cpp
    M synfig-studio/src/gui/cellrenderer/cellrenderer_time.cpp
    M synfig-studio/src/gui/cellrenderer/cellrenderer_value.cpp
    M synfig-studio/src/gui/dialogs/dialog_gradient.cpp
    M synfig-studio/src/gui/docks/dockdialog.cpp
    M synfig-studio/src/gui/duckmatic.cpp
    M synfig-studio/src/gui/instance.cpp
    M synfig-studio/src/gui/trees/historytreestore.cpp
    M synfig-studio/src/gui/trees/keyframetree.cpp
    M synfig-studio/src/gui/trees/keyframetreestore.cpp
    M synfig-studio/src/gui/trees/layergrouptree.cpp
    M synfig-studio/src/gui/trees/layergrouptreestore.cpp
    M synfig-studio/src/gui/trees/layerparamtreestore.cpp
    M synfig-studio/src/gui/trees/layertree.cpp
    M synfig-studio/src/gui/trees/layertreestore.cpp
    M synfig-studio/src/gui/trees/metadatatreestore.cpp
    M synfig-studio/src/gui/workarea.cpp
    M synfig-studio/src/synfigapp/action.cpp
    M synfig-studio/src/synfigapp/action_system.cpp
    M synfig-studio/src/synfigapp/canvasinterface.cpp
    M synfig-studio/src/synfigapp/instance.cpp

  Log Message:
  -----------
  getenv is very slow on Windows, so I replaced most of the logging calls with 
a macro that is disabled by default. (#2826)

Benchmark test (used a null target to exclude rendering impact):
```
./synfig synfig-core/examples/pirates.sif -o pirates.png -t null
```

All benchmarks made on Release builds.

Windows (MSVC) before:
```
Execution time: 28.352 s
Execution time: 28.345 s
Execution time: 28.391 s
```
Avg: 28362 ms

Windows (MSVC) after:
```
Execution time: 6.140 s
Execution time: 6.341 s
Execution time: 6.201 s
```
Avg: 6227 ms
Improvement: **4.55x faster** (455%)


Windows (MinGW) before:
```
real    0m19.757s
real    0m18.605s
real    0m18.697s
```
Avg: 19019 ms

Windows (MinGW) after:
```
real    0m6.842s
real    0m6.816s
real    0m6.772s
```
Avg: 6810 ms
Improvement: **2,79x faster** (279%)


Linux before:
```
./synfig  -o pirates.png -t null  3,72s user 0,39s system 109% cpu 3,756 total
./synfig  -o pirates.png -t null  3,83s user 0,37s system 109% cpu 3,834 total
./synfig  -o pirates.png -t null  3,71s user 0,42s system 109% cpu 3,778 total
```
Average: 3789 ms

Linux after:
```
./synfig  -o pirates.png -t null  3,62s user 0,38s system 111% cpu 3,583 total
./synfig  -o pirates.png -t null  3,50s user 0,40s system 110% cpu 3,523 total
./synfig  -o pirates.png -t null  3,52s user 0,39s system 108% cpu 3,593 total
```
Average: 3566 ms
Improvement: 0,06x (6%)

macOS before:
```
./synfig synfig-core/examples/pirates.sif -o  -  2,85s user 0,31s system 108% 
cpu 2,928 total
./synfig synfig-core/examples/pirates.sif -o  -  2,84s user 0,32s system 108% 
cpu 2,911 total
./synfig synfig-core/examples/pirates.sif -o  -  2,83s user 0,31s system 108% 
cpu 2,898 total
```
Average: 2912 ms

macOS after:
```
./synfig synfig-core/examples/pirates.sif -o  -  2,57s user 0,31s system 108% 
cpu 2,642 total
./synfig synfig-core/examples/pirates.sif -o  -  2,57s user 0,31s system 109% 
cpu 2,642 total
./synfig synfig-core/examples/pirates.sif -o  -  2,57s user 0,31s system 108% 
cpu 2,641 total
```
Average: 2642 ms
Improvement: 0,1x (10%)
# Conflicts:
#       synfig-core/src/synfig/node.cpp
#       synfig-core/src/synfig/savecanvas.cpp
#       synfig-core/src/synfig/valuenode.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_bline.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_bone.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_boneinfluence.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_boneweightpair.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_composite.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_const.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_dynamiclist.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_modulo.cpp
#       synfig-core/src/synfig/valuenodes/valuenode_staticlist.cpp
#       synfig-studio/src/gui/canvasview.cpp
#       synfig-studio/src/gui/dialogs/dialog_gradient.cpp




_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to