List<T>
을 사용하는 실제/실시간 시나리오는 어디에서 찾을 수 있습니까?
List<T>
을 어디서 어떻게 구현할 수 있는지 알고 싶습니다.`List <T>`을 사용하는 실제/실시간 시나리오는 어디에서 찾을 수 있습니까?
모든 코드 예제 또는 링크로 수행 할 수 있습니다.
List<T>
을 사용하는 실제/실시간 시나리오는 어디에서 찾을 수 있습니까?
List<T>
을 어디서 어떻게 구현할 수 있는지 알고 싶습니다.`List <T>`을 사용하는 실제/실시간 시나리오는 어디에서 찾을 수 있습니까?
모든 코드 예제 또는 링크로 수행 할 수 있습니다.
MSDN page on List<T>은 어떻습니까? 거기에 설명과 예제가 있습니다.
간단히 말해, 무언가 (숫자 목록, 사람 목록, 무엇이든 목록) 목록을 원할 때마다 목록, 목록, 목록 만 사용하면됩니다. 어쩌면 내가 당신의 질문의 요점을 놓친 .. 어떻게 List를 구현하는 방법을 물어? 또는 목록을 사용하여 코드를 구현하는 방법은 무엇입니까? 나는 그것이 두 번째 선택이라고 생각한다.
lmgtfy를 권해 드리는 사람을 위해 +1! ;-) – Cerebrus
'실시간'시스템에서는 처음 생성 할 때 입력하고자하는 모든 데이터를 저장할 수있는 충분한 크기로 목록이 작성되도록하고 싶을 것입니다 (전달할 생성자를 사용하십시오 용량).
들은 상대적으로 고가이기 때문에 또한, 다음과 같은 작업 (어쩌면 더)를 방지 할 수 있습니다 (즉, 그들은 (1) O를 보이지만하지 않습니다 수 있습니다.) :
이 목록에있는 다른 O (N) 작업이 있지만, 그 중 대부분은 당신이 어떤 방법을보고 추측에는 요 않습니다.
그렇다면 성능 요구 사항에 맞는지 확인하는 유일한 방법은 테스트하는 것입니다. 자신에게 좋은 테스트 장치를 갖춰 그것을 필요로 함을 의미하는 것으로 확인하십시오.
List 또는 모든 데이터 구조가 작동하는지 확인하려면 서비스의 성능 요구 사항을 모델링해야 할 것 같은데요. 초당 수백만 개의 항목이 필요합니까? 수십억? 밀리 초? 사양에 맞출 수 있는지 확인하거나 사양을 다시 작성하십시오!
저는 실시간과 같은 시스템을위한 소프트웨어를 작성한 적이 없으며, .NET이 좋은 후보라고 생각하지 않습니다. 가비지 컬렉터가 트리거 될 때를 모를 때, 아무 일도 일어나지 않은 것처럼 실행을 프로그램에 반환하기 전에 알 수없는 시간 동안 프로그램을 일시 중지하십시오.
데이터 유형 및 목록으로 수행 할 것으로 예상되는 작업 유형에 대해 자세히 알려주십시오. List에서 가장 느린 부분은 아마도 원래 생성 된 항목을 더 추가 할 때 발생하는 기본 배열의 크기입니다. 이 정보를 계산할 수있는 경우 정수를 초기 크기로 허용하는 생성자를 사용하여이 문제를 해결할 수 있습니다. 또한 삽입/제거와 같은 방법을 사용하지 마십시오.
그런 짐승을 만들 수있는 경험이 없다면 .Net을 실시간 시스템과 함께 사용할 수 없다는 것을 어떻게 알 수 있습니까? –
@Peter, 그래서 내가 "and I _doubt_ that"라는 문구를 사용했습니다. 필자는 실시간 시스템이 사전 구성된 시간 전에 실행되어야한다는 사실을 알고 있어야합니다. 이것은 가비지 컬렉터에 의해 언제든지 코드가 중단되고 언제든지 일시 중지 될 수 있으며 나중에 알림없이 다시 시작될 수있는 경우 보장 할 수있는 것이 아닙니다. – sisve
사실, 나는 -1을 되 찾는다. 하지만 .Net 런타임은 멀티 코어 프로세서가있는 별도의 스레드에서 GC를 실행하도록 구성 할 수 있습니다. 그러면 실시간 시나리오에서 작동 할 확률이 높아집니다. –
어떤 종류의 실시간이 실시간인가요? REAL 실시간을 원한다면 .Net이나 Windows도 당신의 친구가 아닙니다.
는 그리고 그것은 간단하지 않다 : 성능이 중요한 시스템의 http://www.eurotech-inc.com/info/white-papers/Managed_Code_for_Real_Time.pdf
, 나는 그것이 구현의 측면에서 약간 부풀어 때문에 List<T>
이 작업에 적합하지 않을 것에 동의합니다. 물론 사용하기 쉽지만, 거기에는 많은주의가 있습니다.
정말 수행 방법을 확인하는 방법은 다음과 같습니다
List<T>
를 사용하여 프로파일 응용 프로그램에 대한 몇 가지 일반적인 작업을 수행하는 프로그램을 작성합니다.List<T>
의 내부 동작을 연구하면 실제로 병목 현상을 찾아 대체 구현을 찾을 수 있습니다. 예를 들어 하나의 예기치 않은 감속 지점은 목록의 모든 내용을 반복하므로 Count()
메서드에 액세스합니다.IList<T>
인터페이스의 "터보 방식"구현을 구현할 수있을만큼 기본 사항이어야합니다.저는 C#의 다른 데이터 구조와 List를 비교하는 방법을 찾고 있다고 생각합니다. 질문을 필터링하면 좋을 것입니다.
@ Shog9 - 여기에 원래 질문이 많지는 않지만 매우 잘 공식화되어 있습니다. :) –
@ Shog9가 표시 한 유머 감각을 고맙게 생각하지만 원래 질문은 남아 있지 않았다고 생각합니다. 개정에서. 시작된 롤백 절차. – Cerebrus
"실시간 시나리오"가 OP를 의미하는 것이 "실제 시나리오"라는 용어로 더 잘 묘사됩니다. – Cerebrus