Skip to content

Performance degradation when shared utility is enabled #7521

@matusvalo

Description

@matusvalo

Describe your issue

I have ran performance tests of cython and it seems that enabling shared utility module causes performance degradation. Here are most affected (> 10% performance degradation):

2026-02-11 14:12:01  ### Benchmark 'bm_slice_memoryview' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           = 168.789 nsec, 169.037 nsec, 169.417 nsec
2026-02-11 14:12:01      S-Cython 'master'         = 265.030 nsec, 265.359 nsec, 265.745 nsec  (   +57.0 %)
2026-02-11 14:12:01  ### Benchmark 'bm_create_inner_func_plain' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           = 178.644 nsec, 179.003 nsec, 179.423 nsec
2026-02-11 14:12:01      S-Cython 'master'         = 209.291 nsec, 209.592 nsec, 214.308 nsec  (   +17.1 %)
2026-02-11 14:12:01  ### Benchmark 'fused_args_1' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           =   2.360 usec,   2.381 usec,   2.400 usec
2026-02-11 14:12:01      S-Cython 'master'         =   3.770 usec,   3.782 usec,   3.806 usec  (   +58.9 %)
2026-02-11 14:12:01  ### Benchmark 'fused_args_2' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           =   1.257 usec,   1.262 usec,   1.269 usec
2026-02-11 14:12:01      S-Cython 'master'         =   1.449 usec,   1.451 usec,   1.455 usec  (   +15.0 %)
2026-02-11 14:12:01  ### Benchmark 'bm_getitem_tuple' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           =  36.994 usec,  37.552 usec,  38.014 usec
2026-02-11 14:12:01      S-Cython 'master'         =  42.142 usec,  42.312 usec,  42.718 usec  (   +12.7 %)
2026-02-11 14:12:01  ### Benchmark 'bm_getitem_ext' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           = 202.649 usec, 204.566 usec, 204.844 usec
2026-02-11 14:12:01      S-Cython 'master'         = 225.850 usec, 227.740 usec, 228.050 usec  (   +11.3 %)
2026-02-11 14:12:01  ### Benchmark 'bm_cmp_int_obj' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           =   1.347 usec,   1.359 usec,   1.373 usec
2026-02-11 14:12:01      S-Cython 'master'         =   1.694 usec,   1.706 usec,   1.709 usec  (   +25.5 %)
2026-02-11 14:12:01  ### Benchmark 'bm_cmp_str_obj' (min/median/max/ ±% of median):
2026-02-11 14:12:01      Cython 'master'           =   2.068 usec,   2.110 usec,   2.120 usec
2026-02-11 14:12:01      S-Cython 'master'         =   2.337 usec,   2.375 usec,   2.581 usec  (   +12.6 %)

Not sure if there is anything that can be done except documenting it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    performancesharedlibCython module for code sharing between multiple modules.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions