Wide 포맷으로 날아온 거래소 레벨2 데이터를 long으로 눕히는데 pandas 없이 하니 메모리가 80% 이상 뚝뚝 떨어졌다. 처음엔 파이썬 dictionaries만 써서 직접 loop 돌렸는데 느려서 포기하고, list comprehension + itertools. groupby 조합으로 최적화했더니 300ms에서 12ms로 줄었다.
키포인트는 데이터를 스트리밍하듯 chunk 단위로 잘라서 처리하는 거다. filter + accumulate 패턴으로 중복 key 들어오면 누적합 실시간 갱신하고, 끝나는 시점에만 finalize 하니 GC 여유도 많고 외부 라이브러리 없이도 충분히 빠르다. 혹시 비슷한 상황에 계신 분 있으면 채팅 주세요.
출처
- Ask HN: How do you handle wide-to-long without Pandas/R? (community_intel)
- Ask HN: Should a tl;dr be mandatory for long submissions? (community_intel)
- Ask HN: What are some science or tech facts you know? (community_intel)