김영대님의 홈페이지에 있는
[소스] Query한 결과를 텍스트 파일로 저장하기(Excel 포함)를 보고 궁금한
점이 있어 질문을 드립니다.
김영대님의 소스로 텍스트로 받는건 잘 사용을 하고 있습니다.
그런데 1만건 정도의 데이타를 string으로 받으려고 합니다.
텍스트로 저장을 하지 않고 string변수로..
텍스트로 받을때 사이즈가 약 10M정도 되는데 그냥 상식으로는
string변수로 받을때는 파일로 쓰지 않기 때문에 빠를거 같았는데
실제적으로 돌려보니까 무척 느립니다..(엄청 늦네요)
TmpQryData := TmpQryData + 내용
이런식으로 하는데..
원래 느린건가요 ?
좀더 빠르게 string변수로 저장할 수 있는 방법은 없을까요 ?
Strnig으로 문자열 연산을 하게 되면, 내부적으로 두개의 문자열이 합해질 만큼의 공간을 할당하고, 두 문자열을 복사하는 등의 메모리 재할당과 이동 연산을 수행하게 됩니다. 말씀하신것과 같이 만건을 문자열 연산으로 더한다면 그러한 동작이 만번 발생하게 되겠죠.. 엄청 느릴수 밖에 없다는... ^^;
차라리 TMemoryStream이나, TStringStream을 사용하시는 것이 좋을것 같습니다.
그럼 즐프~