d48735cca2c69cefa7d4cdf3128cfdcd1beeb909
This improves performance of the procedure executor on secondary metrics (i.e. not for the main use case when many elements are processed together, but for the use case when a single element is processed at a time). In my benchmark I'm measuring a 50-60% improvement: * Procedure with a single function (executed many times): `5.8s -> 2.7s`. * Procedure with 1000 functions (executed many times): `2.4 -> 1.0s`. The speedup is mainly achieved in multiple ways: * Store an `Array` of variable states, instead of a map. The array is indexed with indices stored in each variable. This also avoids separately allocating variable states. * Move less data around in the scheduler and use a `Stack` instead of `Map`. `Map` was used before because it allows for some optimizations that might be more important in the future, but they don't matter right now (e.g. joining execution paths that diverged earlier). * Avoid memory allocations by giving the `LinearAllocator` some memory from the stack.
…
.. Keep this document short & concise, linking to external resources instead of including content in-line. See 'release/text/readme.html' for the end user read-me. Blender ======= Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing. .. figure:: https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg :scale: 50 % :align: center Project Pages ------------- - `Main Website <http://www.blender.org>`__ - `Reference Manual <https://docs.blender.org/manual/en/latest/index.html>`__ - `User Community <https://www.blender.org/community/>`__ Development ----------- - `Build Instructions <https://wiki.blender.org/wiki/Building_Blender>`__ - `Code Review & Bug Tracker <https://developer.blender.org>`__ - `Developer Forum <https://devtalk.blender.org>`__ - `Developer Documentation <https://wiki.blender.org>`__ License ------- Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license. See `blender.org/about/license <https://www.blender.org/about/license>`__ for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%