2009-03-18 4 views
1

조회 테이블을 사용하여 텍스트 메시지를 구문 분석하는 Message 클래스가 있습니다. 많은 메시지를 받고 많은 객체를 만들고 파괴하므로 같은 테이블을 반복해서 초기화하지 못하도록 정적 테이블 멤버로 조회 테이블을 선언한다고 생각했습니다.조회 테이블이 정적이어야합니다

올바른 접근인가 아니면 더 적절한 C++ 방식인가?

감사합니다.

답변

1

컴파일러가이를 최적화 할 것으로 기대하지만, 올바른 방법으로 들리는군요. 응용 프로그램을 벤치마킹하고 테이블을 정적으로 선언하면 속도가 빨라 집니까?

큰 조회 테이블이 많은 경우 성능은 향상되지만 테이블은 항상 메모리에 보관됩니다.

2

클래스 변수가 될 수 있습니다. 즉, 클래스 수준에서 정적 일 수 있습니다. 그런 식으로 하위 클래스에 사용할 수 있으며, 개별 메소드의 정적 로컬 변수로 "숨김"보다 조금 더 쉽게 볼 수 있습니다.

0

예, 모두 정상입니다. 때로는 좋은 해결책입니다. 함수 정적은 한 번만 생성됩니다. 또한 싱글 톤 객체를 사용할 수도 있지만 접근성이 더 넓습니다.

멀티 스레드 응용 프로그램이 있고 lookup-tables가이 테이블보다 빨리 파괴 될 수있는 다른 데이터에 대한 포인터를 포함하는 경우주의하십시오.

3

메시지 클래스가 자신의 정적 조회를 추상화하여 실제로 한 번만 초기화되도록하는 조회 정보를 공유하는 경우.

하지만 정적 클래스 멤버가 확실한 방법입니다.

0

싱글 톤 패턴을 사용하면이 작업이 가능합니다.

관련 문제