josw123 / dart-fss

한국 금융감독원에서 운영하는 다트(Dart) 시스템 크롤링을 위한 라이브러리
https://github.com/josw123/dart-fss
MIT License
322 stars 110 forks source link

재무상태표를 연속으로 가져올 때 메모리 오류 발생 #13

Closed paladinz67 closed 5 years ago

paladinz67 commented 5 years ago

안녕하세요, 전체 기업에 대한 장기간의 재무상태표가 필요하여, 등록된 모든 기업에 대해 재무상태표를 읽어 와서 엑셀 파일로 저장하는 프로그램을 작성 중입니다. for loop를 돌면서 .get_financial_statement()와 .to_excel (file_name)를 반복하는 간단한 프로그램입니다. 그런데 얼마간의 루프를 돈 후 아래와 같이 메모리 에러가 발생합니다. 상세 에러 메시지는 첨부하였습니다.

확인 좀 부탁 드립니다. 항상 감사합니다. ^^ Error_log_20190724.txt

ImportError: DLL load failed: 이 작업을 완료하기 위한 페이징 파일이 너무 작습니다. MemoryError File "", line 833, in get_data File "", line 833, in get_data MemoryError MemoryError MemoryError

josw123 commented 5 years ago

12 오류에 의해 발생하는 현상입니다.

XBRL 파일은 존재하나 연결재무제표가 없는 경우에 연결재무제표를 검색하기 위해 최근 공시 부터 과거 공시까지 모든 공시들의 XBRL 파일을 로딩하게 됩니다.

즉 아래와 같이 여러 XBRL 파일을 로딩하게 되므로 메모리 공간부족이 일어나게 됩니다.

Download: 18.0KB [00:00, 279KB/s] # 2018년 공시 XBRL
Download: 18.0KB [00:00, 302KB/s] # 2017년 공시 XBRL
Download: 14.0KB [00:00, 464KB/s] # 2016년 공시 XBRL
Download: 14.0KB [00:00, 412KB/s] # 2015년 공시 XBRL
Download: 15.0KB [00:00, 468KB/s] # 2014년 공시 XBRL
Download: 15.0KB [00:00, 452KB/s] # 2013년 공시 XBRL

이로 인해 아래그림과 같이 지속적으로 메모리를 사용량이 증가하게 되므로 메모리 공간 부족이 일어나게 되는 것입니다. Figure_1

이 문제는 #12 수정 때같이 수정하겠습니다.

paladinz67 commented 5 years ago

감사합니다. 항상 빠르게 응대해 주시네요.

제가 어제 출장으로 하루 종일 자리를 비워 이제야 봅니다. 항상 감사합니다. ^^