Example 2: When the function arguments change
Without stopping the previous app server, let's change one of the arguments to our cached function:
```python
import streamlit as st
import time
@st.cache(suppress_st_warning=True)
def expensive_computation(a, b):
    st.write("Cache miss: expensive_computation(", a, ",", b, ") ran")
    time.sleep(2)  # This makes the function take 2s to run
    return a * b
a = 2
b = 210  # 👈 Changed this
res = expensive_computation(a, b)
st.write("Result:", res)
```
Now the first time you rerun the app it's a cache miss. This is evidenced by the "Cache miss" text showing up and the app taking 2s to finish running. After that, if you press R to rerun, it's always a cache hit. That is, no such text shows up and the app is fast again.
This is because Streamlit notices whenever the arguments a and b change and determines whether the function should be re-executed and re-cached.
