|
ResultString = ResultString + buffer;
문장이 통신량이 자주 발생하면 안좋다는 것입니다.
궂이 좋다 안좋다 할 수는 없지만 ㅠ.ㅠ
ResultString 은 AnsiString 으로 작성 하셨을 것이기에 메모리가 자꾸 갱신되면서 잡히는 문제를
발생할 수 있습니다.
또한 string 길이가 길어지면서 buffer 가 자꾸 들어오면 앞서 받은 string에 대하여서도 계속적으로
string copy 에 의한 메모리 할당이 이루어지는 구조 입니다.
통신되는 량이 정해지거나 할 경우 일반 byte 배열을 쓰시든지 아니면 stream 을 사용
(StringStream 같은것도 좋을듯 합니다) 하거나 아니면 list 구조를 사용하심이 어떨까하고 적은 것 입니다.
앞서 말했듯이 통신량이 많거나 그 빈도가 많을경우 해당됩니다.
대략적으로 통신량이 적으시면 그냥 사용하셔도 무방하실듯 하고요..
아니면 이렇게 고치시는게
ResultString.cat_printf("%s",buff);
cat_printf 가 memory realloc 인지 검토를 해보는것도 좋은 방법 갖습니다.
왕초보 님이 쓰신 글 :
: 제가 dos 부분이 필요해서 가져다 쓰려는데 둘리님께서
:
: : while(ReadFile(hread, buffer, sizeof(buffer)-1, &BytesRead, NULL) && BytesRead)
: : {
: : buffer[BytesRead] = '\0';
: : ResultString = ResultString + buffer;
: : }
:
: 이부분에서 로드가 걸려서 안좋다라고 하셨는데
: 어떻게 해결을 할수가 있을까요?
:
: 그냥 써도 무관할까요?
|