파이썬으로  parquet 파일을 읽어오면서 일정크기마다 텍스트로 저장하는 프로그램을 작성하였다. 그러면서

body += row.text + "\n"


같은 구문을 사용하였다. 나는 서버 개발자라서 이런 식의 구문을 사용했을 때 엄청 많이 반복적으로 사용하는 경우는 없었다. 그런데 이것은 집에서 하는 개인프로젝트로 엄청 큰 parquet 파일을 읽는 작업이라서 매우 큰 row.text 에 대해 반복적으로 하는 작업이었다. 
그런데 프로그램을 동작시키자 매우 느리게 동작했다.  내 개인적인 느낌으로는 이게 그렇게 느린 만한 작업이 아니다고 생각해서 break 를 잡아가면서 테스트 해 보았다. body 가 커질 수록 느려지는 느낌이었다. 찾아보니 이런 case 는 

items = []
for key, row in df.iterrows():
    items.append(row.text)
"'\n'.join(items)


이런것을 추천하는 것으로 보았다. 

자바에서의 StringBuffer 가 아닌 String 같은 느낌인 것 같다. 그러다보니 덧셈 연산이 발생할 때마다 메모리 공간 할당이 발생하는 것 같다. (정확한 것을 찾아 봐야한다. )

어째든 내 경우 StringIO 을 이용했다. 

io_file = StringIO()
for key, row in df.iterrows():
    io_file.write(row.text)
    io_file.write("\n\n")
io_file.getvalue()

같이 수정해 보니 꽤 쓸만한 속도로 동작했다.