시스템 시뮬레이션의 일부로 스파 스 메모리 배열을 사용하여 64 비트 주소 지정을 사용하여 메모리 공간을 모델링하고 해당 메모리 내에 할당 된 버퍼를 추적하는 개체 목록을 유지합니다. 메모리 공간. 버퍼는 동적으로 할당 및 할당 해제됩니다.범위 배열에서 멤버십 검색
할당 된 버퍼 내에서 주어진 주소 또는 주소 범위를 검색하여 메모리 모델에 대한 액세스가 할당 된 공간에 있는지 여부를 확인하는 기능이 있습니다. 그리고 "내 첫 번째 차단"을 찾을 때까지 모든 버퍼를 검색합니다. match "는 우리의 시뮬레이션을 10 % 느리게 만듭니다. 우리의 UUT는 시뮬레이션으로 검사해야하는 많은 메모리 액세스를 수행합니다.
그래서 최적화를 시도하고 있습니다. 메모리 버퍼 객체에는 시작 주소와 길이가 포함됩니다. 개체 작성시 주소를 시작하여 개체 배열을 정렬하고 검사 기능이 호출 될 때 주어진 주소가 시작/끝 범위 내에 있는지보기 위해 배열을 통해 이진 검색을 수행하려고합니다.
더 빠르고 더 빠른 방법이 있습니까? 힙이나 해시 서명 또는 일부를 사용하여 더 빠른/쿨러 알고리즘이 있어야합니다. 맞습니까?