• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mgreter / libsass
86%
master: 85%

Build:
Build:
LAST BUILD BRANCH: move-ci-from-travis-to-github-actions
DEFAULT BRANCH: master
Repo Added 04 Oct 2014 08:38PM UTC
Files 144
Badge
Embed â–¾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH perf/memoize-extend
branch: perf/memoize-extend
CHANGE BRANCH
x
Reset
  • perf/memoize-extend
  • 3.4-stable
  • 3.4.0
  • Branch_3.4.7
  • CI/check-nested-bottom-only
  • CI/test
  • api/c-interface
  • api/protect-from-malloc-error
  • bigfix/issue_1765
  • bugfix/1969-calc-prelexer
  • bugfix/2640-selector-nest-explosion
  • bugfix/2884-attribute-selector-equality
  • bugfix/2980-fix-unary-expr-eval
  • bugfix/2994-endless-extend-loop
  • bugfix/2998-extend-compound-warning
  • bugfix/3006-extend-with-parent
  • bugfix/3014-mem-leak-in-permutate
  • bugfix/3018-nested-sel-nl-ws
  • bugfix/3019-extend-error-src-lifetime
  • bugfix/3046-selector-schema-chroot
  • bugfix/C-API-fixup
  • bugfix/MSVC-debug-assertion
  • bugfix/arglist-in-each
  • bugfix/ast-compare
  • bugfix/attribute-selector-unify
  • bugfix/c-api-copy-options
  • bugfix/check-nesting-all-includes
  • bugfix/ci-fail-ruby-dep
  • bugfix/ci-mac-shared-tests
  • bugfix/color-functions
  • bugfix/compare-doubles-epsilon
  • bugfix/compiler-compat
  • bugfix/compiler-warning
  • bugfix/compound-selector-merging
  • bugfix/css-newline-escape
  • bugfix/ctx-options-leak
  • bugfix/cwd-goes-missing
  • bugfix/delay-unary-expressions
  • bugfix/each-parent-selector-list
  • bugfix/edge-case-crashes
  • bugfix/endless-loop-selector-list-compare
  • bugfix/err-mixin-wo-content
  • bugfix/err-na-fn-w-kwdarg
  • bugfix/error-check-in-for-loop
  • bugfix/error-invalid-parent-selector
  • bugfix/error-messages
  • bugfix/error-reporting
  • bugfix/escape-seq-parsing
  • bugfix/eval-map-segfault
  • bugfix/extend-recursion
  • bugfix/extend-regression
  • bugfix/extend-regression-2
  • bugfix/feature-block-indent
  • bugfix/file-content-buffer-overread
  • bugfix/flag-propagation
  • bugfix/function-call-invocation
  • bugfix/functional-schema-parsing
  • bugfix/has-placeholder-flag
  • bugfix/hex-color-parsing
  • bugfix/hyphens-after-interpolation
  • bugfix/import-errors
  • bugfix/importer-c-api-path-handling
  • bugfix/interpolation
  • bugfix/invalid-duplicate-map-key
  • bugfix/is-printable-comment
  • bugfix/issue-1294
  • bugfix/issue-1452
  • bugfix/issue-2081
  • bugfix/issue-2082
  • bugfix/issue-2095
  • bugfix/issue-2120
  • bugfix/issue-2124
  • bugfix/issue-2143
  • bugfix/issue-2144
  • bugfix/issue-2147
  • bugfix/issue-2151
  • bugfix/issue-2153
  • bugfix/issue-2158
  • bugfix/issue-2185
  • bugfix/issue-2195
  • bugfix/issue-2202
  • bugfix/issue-2203
  • bugfix/issue-2205
  • bugfix/issue-2211
  • bugfix/issue-2224
  • bugfix/issue-2232
  • bugfix/issue-2236
  • bugfix/issue-2246
  • bugfix/issue-2291
  • bugfix/issue-2295
  • bugfix/issue-2307
  • bugfix/issue-2309
  • bugfix/issue-2320
  • bugfix/issue-2321
  • bugfix/issue-2330
  • bugfix/issue-2333
  • bugfix/issue-2341
  • bugfix/issue-2346
  • bugfix/issue-2347
  • bugfix/issue-2352
  • bugfix/issue-2358
  • bugfix/issue-2359
  • bugfix/issue-2360
  • bugfix/issue-2365
  • bugfix/issue-2366
  • bugfix/issue-2376
  • bugfix/issue-2382
  • bugfix/issue-2384
  • bugfix/issue-2394
  • bugfix/issue-2399
  • bugfix/issue-2429
  • bugfix/issue-2465
  • bugfix/issue-2467
  • bugfix/issue-2468
  • bugfix/issue-2472
  • bugfix/issue-2480
  • bugfix/issue-2488
  • bugfix/issue-2560
  • bugfix/issue-2579
  • bugfix/issue-2582
  • bugfix/issue-2604
  • bugfix/issue-2863
  • bugfix/issue_1007
  • bugfix/issue_1016
  • bugfix/issue_1021
  • bugfix/issue_1025
  • bugfix/issue_1035
  • bugfix/issue_1049
  • bugfix/issue_1053
  • bugfix/issue_1056
  • bugfix/issue_1068
  • bugfix/issue_1075
  • bugfix/issue_1080
  • bugfix/issue_1081
  • bugfix/issue_1082
  • bugfix/issue_1092
  • bugfix/issue_1093
  • bugfix/issue_1096
  • bugfix/issue_1101
  • bugfix/issue_1103
  • bugfix/issue_1106
  • bugfix/issue_1115
  • bugfix/issue_1117
  • bugfix/issue_1130
  • bugfix/issue_1153
  • bugfix/issue_1158
  • bugfix/issue_1167
  • bugfix/issue_1168
  • bugfix/issue_1169
  • bugfix/issue_1170
  • bugfix/issue_1171
  • bugfix/issue_1178
  • bugfix/issue_1187
  • bugfix/issue_1188
  • bugfix/issue_1192
  • bugfix/issue_1417
  • bugfix/issue_143
  • bugfix/issue_1537
  • bugfix/issue_1583
  • bugfix/issue_1661
  • bugfix/issue_1706
  • bugfix/issue_1709
  • bugfix/issue_1723
  • bugfix/issue_1732
  • bugfix/issue_1746
  • bugfix/issue_1752
  • bugfix/issue_1763
  • bugfix/issue_1768
  • bugfix/issue_1786
  • bugfix/issue_1792
  • bugfix/issue_1793
  • bugfix/issue_1793_ci
  • bugfix/issue_1804
  • bugfix/issue_1807
  • bugfix/issue_1834
  • bugfix/issue_1839
  • bugfix/issue_1856
  • bugfix/issue_1889
  • bugfix/issue_1927
  • bugfix/issue_1930
  • bugfix/issue_1931
  • bugfix/issue_1944
  • bugfix/issue_1945
  • bugfix/issue_1947
  • bugfix/issue_1971
  • bugfix/issue_1977
  • bugfix/issue_1991_and_1996
  • bugfix/issue_2000
  • bugfix/issue_2016
  • bugfix/issue_2017
  • bugfix/issue_2020
  • bugfix/issue_2023
  • bugfix/issue_2031
  • bugfix/issue_2046
  • bugfix/issue_2074
  • bugfix/issue_2106
  • bugfix/issue_317
  • bugfix/issue_442
  • bugfix/issue_592
  • bugfix/issue_593
  • bugfix/issue_674
  • bugfix/issue_823
  • bugfix/issue_855
  • bugfix/issue_930
  • bugfix/issue_938
  • bugfix/issue_940
  • bugfix/issue_941
  • bugfix/issue_942
  • bugfix/issue_943
  • bugfix/issue_945
  • bugfix/issue_947
  • bugfix/issue_948
  • bugfix/issue_950
  • bugfix/issue_972
  • bugfix/issue_976
  • bugfix/issue_978
  • bugfix/issue_980
  • bugfix/issue_988
  • bugfix/issues_938
  • bugfix/issues_940
  • bugfix/issues_941
  • bugfix/join_paths-util
  • bugfix/leak-function-signature
  • bugfix/loop-performance
  • bugfix/mac-osx-build
  • bugfix/math
  • bugfix/math-ops-with-units
  • bugfix/media-query-with-comments
  • bugfix/mem-leak
  • bugfix/mem-leak-custom-fn-sig
  • bugfix/mem-leak-in-c-api
  • bugfix/memory-corruption
  • bugfix/memory-edge-case
  • bugfix/memory-issue
  • bugfix/memory-leak
  • bugfix/merge-final-ops
  • bugfix/minus-op-parsing
  • bugfix/misc-segfaults
  • bugfix/missing-fn-declarations
  • bugfix/missing-initializer
  • bugfix/move-big-stack-to-heap
  • bugfix/move-rpm-spec
  • bugfix/msvc-memory-manager
  • bugfix/nesting-stack-size-guard
  • bugfix/newline-before-scope
  • bugfix/nr-cmp-map-key
  • bugfix/null-pointer-access-check-nesting
  • bugfix/null-ptr-access
  • bugfix/only-parse-kept-comments
  • bugfix/parent-connect-twice
  • bugfix/parent-selector-eval
  • bugfix/preserve-separator-with-varargs
  • bugfix/propset-evaluation
  • bugfix/pstate-static-value
  • bugfix/readd-plugin-api-getters
  • bugfix/regressions-3.3.3
  • bugfix/relative-paths-on-win
  • bugfix/remove-ci-sass-version-flag
  • bugfix/revert-compound-re-order-non-extended
  • bugfix/rgb-hue-from-zero-saturation
  • bugfix/root-mixin-with-parent-error
  • bugfix/segfault-nested-properties
  • bugfix/segfault-remove-parents
  • bugfix/segfaults
  • bugfix/smart-os-build-regression
  • bugfix/smartos-compilation
  • bugfix/smartos-test
  • bugfix/source-map-inc-paths
  • bugfix/source-map-lex-back
  • bugfix/source-mappings
  • bugfix/sourcemap-crutch
  • bugfix/sourcemap/crutch
  • bugfix/sourcemap/unicode
  • bugfix/sourcemaps
  • bugfix/spaces-in-div-op
  • bugfix/srcmap-selector-schema
  • bugfix/static-colors
  • bugfix/str-slice-function
  • bugfix/str-slice-negative-length
  • bugfix/string-division-op
  • bugfix/string-op-non-lhs-strings
  • bugfix/thread-safety-recursions-check
  • bugfix/trailing-bem-lookahead
  • bugfix/unc-relative-paths
  • bugfix/unc-relative-paths-old
  • bugfix/unit-conversion
  • bugfix/unit-identifier-parsing
  • bugfix/unit-parse-handling
  • bugfix/uri-variable-interpolation
  • bugfix/url-keyword
  • bugfix/url-trailing-spaces
  • bugfix/use-after-free-in-cssize
  • bugfix/value-from-arglist
  • bugfix/value-schema
  • bugfix/value-schema-parsing
  • bugfix/whitespace-issue-wrapped-selector
  • bugfix/win-abspath-without-dir
  • bugfix/wrong-list-spacing
  • build/automake
  • build/fix-msys2-mingw64-automake
  • build/improve-makefile
  • build/improve-makefile-compat
  • build/include-version
  • build/profiling
  • build/sassc-dev
  • build/sassc-tester
  • build/split-ast
  • change/default-scss-to-sass
  • ci-enable/address-sanitizer
  • ci-test
  • ci/clang-fixes
  • ci/fix-travis-mac-osx-build
  • ci/probe-todo
  • clang-warnings
  • cleanup/makefile-windows
  • cleanup/roundhouse-1
  • cleanup/roundhouse-2
  • code-hardening
  • compat/gcc-4.4
  • debug/extend-sources
  • devops/ci-spec-runner-inc-path
  • dlopen
  • doc/recommended-impls
  • docs/unicode
  • documentation/sass_value_api
  • errmsg/missing-fn-argument
  • expose-quote-function
  • feature/C-API-expose-fn-call-stack
  • feature/C-API-mem-allocator
  • feature/ast-subweave
  • feature/attribute-selector-modifier
  • feature/backport-parser
  • feature/backtraces
  • feature/build-dll-win-mingw
  • feature/build-msvc
  • feature/c-api-fn-call-stack
  • feature/c-api-fn-call-stack-travis-ci
  • feature/c-api-string-quoted
  • feature/cleanings
  • feature/cleanup-to-string-visitor
  • feature/cmake-build
  • feature/cmake-files
  • feature/code-clean-ups
  • feature/code-cleanup
  • feature/color-interpolation-warning
  • feature/configurable-indent-and-lf
  • feature/configurable-linefeed
  • feature/coveralls-metrics
  • feature/custom-allocator
  • feature/custom-import
  • feature/dart-sass-rename-1
  • feature/debug-statement
  • feature/default-args-cust-fn
  • feature/eliminate-nested-not
  • feature/error-on-multiple-imports
  • feature/exp-unit-math
  • feature/expose-file-resolver
  • feature/extend-wrapped-selectors
  • feature/final-api-improvements
  • feature/github-contrib-hints
  • feature/global-assignments
  • feature/guard-json-stringify
  • feature/header-inc-guards
  • feature/header-include-guards
  • feature/hsla-colors
  • feature/ie-property-parsing
  • feature/import-css
  • feature/import-recursion-check
  • feature/import-with-media-queries
  • feature/importer-parent-context
  • feature/improve-compare-operators
  • feature/improve-interpolate
  • feature/improved-api
  • feature/improved-source-maps
  • feature/improved-source-maps-rebase
  • feature/interpolate-ns-in-ref-comb
  • feature/issue-1667
  • feature/issue_1146
  • feature/libsass-spec-ci
  • feature/long-path-win
  • feature/move-copy-strings-to-util
  • feature/msc-git-version
  • feature/new-colors
  • feature/number-fixes
  • feature/output-emitter
  • feature/overload-error-fn
  • feature/performance-alpha
  • feature/performance-extend
  • feature/plugin-functions
  • feature/prepare-for-refactor
  • feature/pseudo-selector-compare
  • feature/query-compiled-versions
  • feature/refactor-contextualize
  • feature/refactor-namespace
  • feature/remote-win-unc-locations
  • feature/restore-token-on-fail
  • feature/rounding-precision
  • feature/selector-functions
  • feature/selector-functions-basic
  • feature/selector-namespace
  • feature/shared-source-data
  • feature/source-map/map-more-tokens
  • feature/source-reorganization
  • feature/source-reorganization-test
  • feature/static-color-maps
  • feature/static-native-fn-params
  • feature/tap-report
  • feature/unicode-sequence-parser
  • feature/unify-refactoring
  • feature/unify-refactoring-2
  • feature/url-suffix-fn-parsing
  • feature/warn-double-parent-selector
  • feature/win-dll-build-mingw
  • feature/working-path-for-import
  • feature/wrap-selector-srcmap
  • feature/wrapped-selectors
  • features/clean-c-api-compat
  • fix-trailing-semicolon-removal
  • fix/autotools-versioning
  • fix/build-older-gcc
  • fix/c-sass-value-mem-leak
  • fix/ci-issues
  • fix/code-coverage
  • fix/color-token-ops
  • fix/const_sass_values
  • fix/copy-context-options
  • fix/custom-precision
  • fix/hardened-api
  • fix/issue/789
  • fix/issue_1322
  • fix/issue_1328
  • fix/mac-build
  • fix/makefile-portability
  • fix/minus-op-parsing
  • fix/pointer-compare
  • fix/random-numbers
  • fix/sass_interface_api
  • fix/source-map-771
  • fix/source-map-issues
  • fix/string-in-interpolates
  • fix/url-parsing
  • fixes/issue_1096
  • fixes/issue_1355
  • fixes/issue_1361
  • fixup/object-compare
  • fixup/resharper
  • hotfix/invalid-error-indicator
  • hotfix/issue_1086
  • hotfix/issue_1087
  • hotfix/skip-compile-on-error
  • hotfix/test-regression-1243
  • improve-mem-footprint
  • improve/selector-parsing
  • issue/550
  • issue/550-c-interface
  • issue/init-context-options
  • leaks
  • libsass-4.0-epic
  • libsass-4.0-exp
  • lower-compact-to-warning
  • master
  • memory/ref-count
  • memory/ref-count-3.4
  • merging
  • mine-canary/bolt-bench
  • move-ci-from-travis-to-github-actions
  • negative-number-output
  • netbsd-2120
  • nschonni/cleanups
  • ntqa/del-obsolete-unit-tests
  • perf-refactor/loops-and-env
  • perf-refactor/remove-textual
  • perf/tight-loops
  • perl-libsass/gcc-4.4
  • readme
  • refactor-number-inspect
  • refactor/cleanup-shared-ptr
  • refactor/context
  • refactor/delayed-values
  • refactor/directive-parsing
  • refactor/emitter-execution
  • refactor/emitter-preparation
  • refactor/extend-node
  • refactor/icompatible-unit-exception
  • refactor/libsass-4-alpha
  • refactor/libsass-4-alpha-async
  • refactor/operand-struct
  • refactor/output-emitter
  • refactor/output-preparation
  • refactor/output-preparation-nested
  • refactor/parentize
  • refactor/parser-3.3-rc2
  • refactor/prelexer
  • refactor/root-flags
  • refactor/selector-schema
  • refactor/sources-to-subdir
  • refactoring/parser-for-3.3
  • refactoring/parser-for-3.3-B
  • refactoring/parser-for-3.3-ekskimn
  • refactoring/parser-for-3.3-rebase-1
  • refactoring/parser-for-3.3-rebase-2
  • refactoring/preparation-for-3.3.1
  • refactoring/prepare-for-value-op-export
  • regression/820
  • releng/ci
  • releng/readme-credits
  • releng/trigger-ci
  • remove/imge-url-fn
  • roundhouse-cleanup-02
  • roundhouse-cleanup-03
  • roundhouse-cleanup-03-local
  • sass-3.5/backeted-lists
  • sass-3.5/invert-with-weight
  • sass2scss-1.1.0
  • sass2scss/upgrade
  • selector-lt-and-eq-functions
  • source-map-sources
  • source-map-test
  • srcmap/parent-selector
  • test-interpolate-merging
  • test-travis-ci
  • test/CI
  • test/appveyor
  • test/autotools-versioning
  • test/build-travis
  • test/code-coverage
  • test/emitter-implementation
  • test/fix-mingw
  • test/gcc-4.4
  • test/ldflags
  • test/ldflags-new
  • test/mac-travis
  • test/parent-selector
  • test/srcmap
  • test/travis
  • test/travis-ci
  • test/travis-ci-coverage
  • test/travis-ci-specs
  • test/travis-osx-support
  • test/unified-build
  • testing
  • travis-ci/output-styles-tests
  • update-readme
  • wip/dead-code-paths
  • wip/ugly-but-working

pending completion
2494

push

travis-ci

mgreter
Speed up repeated extends by memoizing calculations

The extend code path is probably the most expensive to go
down in LibSass. It involves multiple conversions between
the regular AST selector node to the internal used format.

Storing results from previous runs is rather cheap, due to
the new shared object memory storage and since we already
have everything to use selectors efficiently as map keys.

It turned out that memoizing Compound-Selectors was too
much overhead. This is probably due to having a `Node`
object a map value (IMO this is a copy assignment). I
commented it out for now with some info for later re-
evaluation when we can store a more efficient value!

12172 of 14146 relevant lines covered (86.05%)

1652469.14 hits per line

Relevant lines Covered
Build:
Build:
14146 RELEVANT LINES 12172 COVERED LINES
1652469.14 HITS PER LINE
Source Files on perf/memoize-extend
Detailed source file information is not available for this build.

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
2494 perf/memoize-extend Speed up repeated extends by memoizing calculations The extend code path is probably the most expensive to go down in LibSass. It involves multiple conversions between the regular AST selector node to the internal used format. Storing results fr... push 04 Feb 2017 02:21PM UTC mgreter travis-ci pending completion  
2492 perf/memoize-extend Implement extend memoize on the compound selector level We obviously need to return clones from the function. push 04 Feb 2017 01:32PM UTC mgreter travis-ci pending completion  
2491 perf/memoize-extend Speed up repeated extends by memoizing calculations The extend code path is probably the most expensive to go down in LibSass. It involves multiple conversions between the regular AST selector node to the internal used format. Storing results fr... push 04 Feb 2017 01:20PM UTC mgreter travis-ci pending completion  
2490 perf/memoize-extend Apply fix for complex selector compare push 04 Feb 2017 12:49PM UTC mgreter travis-ci pending completion  
2488 perf/memoize-extend Reactivate failing test push 04 Feb 2017 12:23PM UTC mgreter travis-ci pending completion  
2486 perf/memoize-extend Give it a CI go with only one optimization push 04 Feb 2017 10:34AM UTC mgreter travis-ci pending completion  
2485 perf/memoize-extend Give it a CI go with only one optimization push 04 Feb 2017 10:22AM UTC mgreter travis-ci pending completion  
2479 perf/memoize-extend Speed up repeated extends by memoizing calculations The extend code path is probably the most expensive to go down in LibSass. It involves multiple conversions between the regular AST selector node to the internal used format. Storing results fr... push 04 Feb 2017 08:52AM UTC mgreter travis-ci pending completion  
2478 perf/memoize-extend Speed up repeated extends by memoizing calculations The extend code path is probably the most expensive to go down in LibSass. It involves multiple conversions between the regular AST selector node to the internal used format. Storing results fr... push 04 Feb 2017 08:45AM UTC mgreter travis-ci pending completion  
See All Builds (1771)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc