개선 될 수있는 작업 영역을 찾기 위해 최근에 매우 오래된 C# 코드 기반 (아주 오래된 .NET 1.1과 C# 1.2)에 액세스했습니다. . 활이 가장 강력한 무기였던 과거와 같은 창입니다. C# 2보다 적은 C# 버전을 기꺼이 코딩 할 기회가 없었습니다.초기 버전의 .NET에서 값 형식을 수행하고 형식에 안전한 컬렉션을 제공합니다.
기본적으로, 내가 발견 한 것은 숫자와 구조체를 저장하기위한 큰 ArrayList
s의 전체 묶음입니다. 커다란 의미는 수십만 또는 수십만 가지의 가치를 의미합니다. 뭔가 같은 것
이러한 목록은 다른 위치의 다른 표준에 따라 정렬되거나 다시 검색됩니다.
사방
그래서 문제는,이 문제를 어떻게 해결하는 두 가지 문제에서 개체의 결과 ArrayList
작품은 내가
- 어떤 유형의 안전
- 권투와 언 박싱 함께했다 알면 제네릭의 도움없이? 너무 많은 데이터가 있기 때문에 un/boxing을 제거하기 위해이 구조체의 클래스를 만들지는 않을 것입니다.
내 구조체 대신 사용할 수있는 사용자 지정 배열 목록을 만드는 방법에 대해 생각했습니다. 거기에있는 모든 구조체에 대해 사용자 지정 배열 목록 구현을 만들어야합니까? 그것에 대해, 그것은 내 자신의 IEnumerable, ICollection 및 IList 각각의 이러한 구조체를 정의하는 것을 의미 할 것입니다, 그렇죠?
성능이 좋고 타입 안전성이 뛰어난 시스템을 얻으려면 비용을 지불하는 것이 좋을지 모르지만 시도하기 전에 자신의 의견을 알고 싶습니다.
당신은 .net 1.1에 맞았습니까? 왜 atleaset .net2.0을 사용하지 않는지 프로젝트를 개선 할 계획입니까? –
실제 질문이 "성능을 향상시키기 위해 내 ArrayList를 대체 할 수있는 것은 무엇입니까?"_ 대답은 "벤치마킹"_입니다. 당신은 대안에 대해 분명히 알고 있습니다 만, 그들 중 어떤 것이 아마 그 프로젝트에서 어떻게 사용되고 있는지에 달려 있습니다. – CodeCaster
@SriramSakthivel 나도 그랬 으면 좋겠다. 고객에게 "안녕하세요, .NET 2.0을 서버에 설치하여 더 잘 작동하는지 확인하십시오."라고 말하지는 않습니다. 그들은 여기에있는 것을 원치 않습니다. –