만약 다른 많은 코드의 축적을 최적화하는 방법

간단한 라우팅 논리 판단을 할 다른 경우 간단한을 사용하여 초기 프로젝트 개발 시간;

많은 경우에 후자 경로는, 예컨대 (500)는,이 시간은 성능에보다 낮은 것;

우리가 더 많은 인간 이상의 라우팅 쓰기 가정, 두 개 또는 세 단어의 평균 조성, 때보다 다섯 개 단어, 6 자의 각 단어의 평균 길이를 더한 20 개 문자의 구분 노선 평균 길이,

30 자이있다;

다른 경우와이를 비교하면, 마지막에 최악의 비교 일치하는 문자열이되고, 다음에 실패 선언했다.

이 경우 문자의 수보다 20 * 200

경로는 종종 액세스를 차단 속해 있으므로이 부분의 성능을 최적화 할 필요가있다;

그럼, 어떻게 성능을 향상시키기 위해?

1. 접두사 트리

  지도, 키, 접두사 트리 형성로 구성 라우팅 접두사 트리, 값은 함수 포인터로 정의됩니다. 이러한 방법으로, 때마다 비교 액세스 경로의 평균 수는 20 배,

  경로 공간에 상대적으로 부족한 경우, 공간 활용, 당신은 노선에 소형의 일부를 시도 할 수 있습니다 높지 않다있을 것이다;

2. 라우팅 값의 방법으로

  경우와 경로 해시 값 후, 구조는 다른 스위치 케이스 구조물의 경우 코드된다. 각각의 비교는 먼저 디지털 일치하는 경로로 변환 할 필요가있다;

  그래서 해시 함수를 구축하는 방법, 장소의 해시 코드 세대 분쟁 해결 보조 일치 고려 가치 방법입니다 줄일 수 있습니다.

      이 문자 * 자료 누적 합계 방법을 사용합니다. 나는 자료 3의 충돌을하지 여러 번 시도했다.

  그러나 기대 (3), 간단한 사 진 계산을하기 위해서이다. 그것은 단지 길이는 최대 16 자까지, 4분의 64 = 16 수용 할 수 있으며, 경로 문자열을 조정하기 때문에 이후의 필요성을

3. 대신 직접 디지털 라우팅

  아무 의미없는 인간 대신 디지털 단점. 그러나, 높은 효율

 

추천

출처www.cnblogs.com/mu-zhang/p/11402818.html