2009-09-09 6 views
1

현재 웹 응용 프로그램에서 작업 중입니다. DataGridView 또는 DropDownList 컨트롤에 대해 DataSource로 사용될 때 어떤 것이 더 나은 성능을 가지고 있는지 궁금합니다.ASP.Net에서 DataTable과 ArrayList를 Datasource로 사용하여 성능 차이 확인

DataReader에서 가져 오지 않는 한 DataTable을 만드는 것이 어렵지만 DataReader 및 ORM 라이브러리와 같은 DataAccess 클래스 사용을 추상화하는 ORM 계층이있는 경우 일반적으로 배열 목록을 반환합니다. 이 경우 DataTable을 만드는 것은 매우 지루합니다. DataSource가 ArrayList에서 DataTextField 및 DataValueField를 선택하는 방법을 처리하는 방법에 대해 궁금합니다 ... 리플렉션을 통해 사용합니까? 그렇다면 Reflection을 사용하면 성능이 저하됩니까? 그러나 DataTable에는 완전한 메타 데이터가 있으므로 더 빠를 것이라고 생각합니다.

당신은 어떻게 생각하십니까?

답변

1

List (ArrayList 대신 사용하기를 바랍니다)는 DataTable보다 가벼운 구조입니다. ORM이 ArrayList를 반환하면 DataList를 DataTable로 변환 한 다음 해당 DataTable을 컨트롤의 DataSource로 사용하는 것이 좋습니다. 이것은 추가 작업입니다. 일반적으로 DataTable (DataAdapter로 채워짐)을 사용합니다. 또는 ORM을 사용하지만 둘 다를 함께 사용하지는 않습니다. DataTable이 ArrayList보다 "무겁"지만 차이점이 그다지 중요하지는 않습니다.

그리드 나 다른 컨트롤의 DataSource가 DataTable 또는에 대해 Reflection을 사용한다고 생각하지 않습니다. 그렇다면 Reflection은 행 단위로 사용되지 않을 것입니다.

3

두 성능 차이는 무시해도 될 것입니다. 조숙 한 최적화에 집중하는 대신 유지 보수 및 이해가 가장 쉬운 옵션에 집중해야합니다.