• filipe oliveira's avatar
    Reduce eval related overhead introduced in v7.0 by evalCalcFunctionName (#11521) · 7dfd7b91
    filipe oliveira authored
    
    
    As being discussed in #10981 we see a degradation in performance
    between v6.2 and v7.0 of Redis on the EVAL command. 
    
    After profiling the current unstable branch we can see that we call the
    expensive function evalCalcFunctionName twice. 
    
    The current "fix" is to basically avoid calling evalCalcFunctionName and
    even dictFind(lua_scripts) twice for the same command.
    Instead we cache the current script's dictEntry (for both Eval and Functions)
    in the current client so we don't have to repeat these calls.
    The exception would be when doing an EVAL on a new script that's not yet
    in the script cache. in that case we will call evalCalcFunctionName (and even
    evalExtractShebangFlags) twice.
    Co-authored-by: default avatarOran Agra <oran@redislabs.com>
    7dfd7b91
eval.c 60.5 KB