我是通用列表的忠实粉丝,并在我工作的任何项目中使用它们。但我目前正在研究外部方编写的另一个项目,并发现页面加载速度非常慢。在某些情况下,页面加载只需2秒钟。
通过初步调查,大多数页面都散落着大量的DataTable,这些DataTable存储了超过1000行的数据。我原本认为声明和设置DataTable列会导致开销。
现在我只是质疑如果我使用通用列表(List)并使用LINQ来过滤所需数据,可能会降低性能延迟。
据我所知,可能会有其他问题导致页面加载缓慢,但是看到大量数据被DataTables操纵似乎有点过度杀戮。
答案 0 :(得分:2)
如果有几个 DataTable
个对象,每个对象有数千行,那么每个页面上的填充是否会被填充?如果是这样,我并不感到惊讶,它需要一段时间 - 而仅仅使用列表将无济于事,因为我预计瓶颈会在多个查询中获取大量数据。 IMO,在那里创建DataTable
的开销可能微不足道。 (我通常也喜欢使用列表等,但出于清洁原因而不是性能。)
当然,您应该分析慢速页面以找出瓶颈所在,而不是猜测。如果这是一个MVC项目,请查看MiniProfiler。