거대한 리스트를 파일로 읽어들일 때와 소스코드에 밖아 넣었을 떄의 python 실행속도
글쓴이: klara / 작성시간: 목, 2009/08/13 - 5:22오전
상황은 이렇습니다.
C++로 무언가 계산하고, python 스크립트로는 그 결과를 이용하여 다른 작업을 합니다.
처음에는 C++로 계산하고 파일로 출력한후, python 스크립트에선 출력결과를 불러와서 다시 리스트로 저장하도록 만들었습니다.
예를 들면 C++로 data.txt 라는 파일에 다음과 같이 계산 결과를 전부 출력하고,
1 10 2 15 3 11 4 12 5 13
python쪽에서는
def readTable(fileName): # 파일내용을 리스트로 변환하여 반환하는 함수 .... x = readTable("data.txt") ...
와 같이 처리하였습니다.
하지만 python 스크립트쪽에서는 어차피 매번 똑같은 작업만 하기 때문에, 아예 C++쪽에서 python코드까지 생성하는 쪽으로 변경하였습니다.
이 때, 이전과 동일하게 data.txt로 출력하고, 위의 스크립트와 동일한 data.txt를 읽어들이는 스크립트를 생성하는 방법과, 다음과 같이 직접 스크립트에 숫자를 집어 넣는 방법이 있을 것입니다.
x = [[1, 2, 3, 4, 5],[10, 15, 11, 12, 13]] ...
처음에는 당연히 직접 찍는 쪽이 불필요한 IO가 생략되므로 더 빠른거 아닌가 라고 생각하였고, 지금은 아무런 문제가 없습니다.
하지만 앞으로 리스트 크기가 엄청나게 커질 가능성이 있는데, 문득 '리스트가 엄청나게 커지면 python이 스크립트를 읽어들이고 파싱하는데 시간이 오래걸려서 오히려 더 느린거 아닌가'라는 생각이 들더군요.
지금의 직접 숫자를 밖아넣는 방법이, 리스트가 커지면 문제가 될수도 있을까요?
Forums:
테스트해보시고
테스트해보시고 결과를 올려 주시면 안될까요? :-)
----
Let's shut up and code.
----
Let's shut up and code.
댓글 달기