|
나그네 님께서 적어주신 코드는 write에서 제가.. 제대로 처리를 못해서... ㅎ.
가장 원초적이라고 생각을 했던, FILE , fopen, fgets, fwrite, fclose 등으로
루틴을 처리하였습니다.
여러분들의 말씀처럼.. RichEdit1->Lines->Strings[n].c_str() 에서 생기네요.
RichEdit에 6만라인짜리 읽어와서, 그냥 for loop 돌면서 '읽기'만 하는데도
한참 걸리네요.
이제.. 금방금방 처리가 되네요.. ㅎ.
도움주신분들 감사합니다.
태즈 님이 쓰신 글 :
: 10000 * 5 = 5만라인 정도의 내용을 가지는 텍스트를 읽어서 데이타를 뽑으려 합니다.
: 각라인에는 7개의 float 변수값이 표시되어있습니다.
:
: 이걸 RichEdit 로 읽어온뒤에,
: for( n = 0 ; n < max ; n ++ ) {
: sscanf( RichEdit1->Lines->Strings[ n ].c_str(), " %f %f %f %f %f %f %f ", &x, &y, &z, &r, &g, &b, &a ) ;
:
: //-- 읽어온 데이터들 처리루틴..
: ~~~
: ~~~
: }
:
: 이러한 방식으로 7개 변수값을 추출하고 있습니다.
: 6만라인을 처리하는데 생각보다 너무 많은 시간이 걸리네요.
: 요부분을 빼고 연산하는 부분만 6만번 돌리는 데는 시간이 별로 안 걸리더군요.
: 그래서 '아마도' 이 부분에서 시간을 많이 잡아먹는 것 같은데..
:
: 이걸 빠르게 구현하려면 어떻게 해야할까요..
:
: ---------------------------------------
:
: 추가적으로 몇가지 테스트를 해보았습니다.
: 테스트할 파일의 길이를 달리하여 테스트한 것입니다.
: 라인수 증가에 따라서 걸리는 시간이 일차적으로 비례하지 않고 있네요.
: 테스트 벡터의 내용은 거의 비슷하기에, 연산량의 차이는 없다고 보고요.
:
: 5000 라인 : 1초미만
: 10000 라인 : 1.5초정도.
: 20000 라인 : 10초정도.
: 30000 라인 : 23초정도
: 40000 라인 : 41초정도.
:
: 60000 라인 : 110초.
:
: 어찌해야할까요...
: --------------------------------------------
:
: 여전한 극초보 태즈였습니다.
: 감사합니다.
|