< 정리 >
1. streamlit에서 시각화에 interactive한 요소가 존재하는 경우가 있을 수 있다.
2. 유저가 interactive한 요소를 조작하면 그때마다 streamlit은 코드 전체를 다시 실행하게 된다.
3. 이때, streamlit에 연결된 데이터의 용량이 크게 되면 반응 속도가 느리게 된다.
4. 이를 해결하는 방법이 바로 캐시! 캐시 데코레이터를 사용하면 설정한 시간만큼 한번 불러온 데이터를 캐시에 저장하게된다.
5. 반대로 말하면 interactive한 요소가 없는 경우엔 따로 설정할 필요는 없는 것 같다.
실제로 설정할 때는
@st.cache_data 혹은 @st.cache_resource 로 설정하면 된다.
< 예시 >
import streamlit as st
@st.cache_data(ttl=3600)
def load_data():
# 오래 걸리는 데이터 로드 작업 예시
data = pd.read_csv('large_dataset.csv')
return data
@st.cache_resource(ttl=3600)
def init_model():
# 오래 걸리는 모델 초기화 작업 예시
model = load_model('model.pkl')
return model
data = load_data()
model = init_model()
위에서 ttl = 3600을 설정해주면, 3600초 즉, 60분 동안 해당 함수를 사용하여 불러온 데이터를 60분동안 캐시에 저장하겠다는 의미이다.
'Visualization' 카테고리의 다른 글
Streamlit Share. 비밀번호 관리 (0) | 2024.08.13 |
---|---|
태블로 대시보드 - TikTok Data by Kaggle (0) | 2024.05.22 |