facebookexperimental/Recoil

[Performance] Short-circuit set recoil state if the value is unchanged

Open

#1,927 opened on Jul 30, 2022

View on GitHub
 (7 comments) (1 reaction) (0 assignees)JavaScript (1,151 forks)batch import
help wantedperformance

Repository metrics

Stars
 (19,428 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

It seems that the current implementation of setting recoil state can be further improved when the value is the same as the current value. In this case, we don't have to go through all the enchilada and more importantly don't have to call setState in the end, which is not exactly cost free. I have observed major performance hit thanks to that. I have to cache the previous value myself and do the equality check before calling set recoil state when recoil has all the knowledge to that.

Contributor guide