파이썬을 사용하여 쉼표로 구분 된 문자열을 구문 분석하고 있습니다. 나중에 데이터를 계산하고 싶습니다. 문자열의 길이는 800 자이며 쉼표로 구분 된 120 개의 필드가 있습니다. 120 만 개의 문자열이 처리됩니다.파이썬 빠른 문자열 파싱, 조작
for v in item.values():
l.extend(get_fields(v.split(',')))
#process l
get_fields이 전체 동작은 데이터를 반입하는 시간을 제외하고 4-5 분 소요 120
중 20 필드를 추출 operator.itemgetter()를 사용한다. 프로그램의 뒷부분에서이 줄을 sqlite 메모리 테이블에 삽입하여 나중에 사용합니다. 그러나 구문 분석과 목록을 가져 오는 데 4-5 분 정도 소요되는 시간은 내 프로젝트에 좋지 않습니다.
이 처리는 약 6-8 스레드에서 실행합니다.
C/C++로 전환하면 도움이 될 수 있습니까?
당신은 800자를 반복 할 필요가있는 함수를 호출하고 있으며, 당신은 그것을 100 만회 이상 수행하고 있습니다. 컴퓨터 일지라도 처리해야 할 부분이 많습니다. – tlayton
http://docs.python.org/library/csv.html – kennytm
휠 재발발을 계획하고 있다면 다음 게시물을 참조하십시오. http://stackoverflow.com/questions/3055477/how-slow- is-pythons-string-concatenation-vs-str-join 또한 발전기를 살펴 봐야합니다. –