public class User
{
public int Id { get; set; }
public int Age { get; set; }
public string Name { get; set; }
}
사용자가 100,000 명입니다.여러 필드 인덱싱 된 개체 배열
검색어 : 가져 오기 누구의 이름 "라파엘"이고 그의 나이 사용자 Linq2Objects으로
-
40 내지 50 :. users.Where (P => 페이지 이름 == "라파엘"& & 페이지. 연령> = 40 & & p.Age < = 50) .ToArray();
성능 향상을위한 대안이 있습니까? (읽기 전용 스레드 안전)
(MultiIndexed 사용자 배열)
나는 그것이 성능의 테스트했습니다. 1000k 사용자의 경우 30-50ms가 소요됩니다. 중요한 것은 아니지만 그렇습니다. 1 초에 50 건의 요청을받을 수 있습니다.
dharnitski의 솔루션을 사용하십시오. 그것은 0ms가 걸립니다. :)
하지만 투명하게 만드는 코드 프레임 워크가 있습니다.
public class FastArray<T>
thread로부터 안전한 것으로, 거기에서 쿼리하는 동안 컬렉션에 다른 프로세스가 쓰여지는 것을 의미합니까? –
죄송합니다. ReadOnly ThreadSafe. 나는 질문을 업데이트했다. – ozz
_ 그러나 코드 프레임 워크가 투명하게 만듭니다 ._ 예. 그것은 RDBMS입니다 :) –