내가이 구조체의 100,000 + 항목과 tailq이 발행 :C의 tailq 큐 대체
struct entry {
char *file_name;
FILE *file;
TAILQ_ENTRY(entry) tailq;
};
목적은 응용 프로그램이 파일의 수천을 생성하고 그들에게 거즈를 추가하기위한 파일 포인터의 저장 수천이다.
그렇지 않으면 다음 ID를 추가 꼬리에없는 경우, 이미 tailq에 일부 임시 이름을 검색int c;
char temp[20];
struct entry *np;
TAILQ_FOREACH(np, &tailq_head[y], tailq) {
if(strcmp(np->file_name, temp) == 0){
c = 1;
break;
}
}
이 안 함 : tailq의 각 증가에
나는 foreach는이 .성능을 향상 시키려면 어떻게해야합니까? 내가 사용할 수있는 더 빠른 구조는 무엇입니까? foreach에서 비교할 임시 변수에 대한 정수 해시를 계산해야합니까? 아이디어?
파일 순서가 중요합니까? –
@MarceloCantos no –