项目的两个独立数据访问层 (DAL) 的比较
Posted
技术标签:
【中文标题】项目的两个独立数据访问层 (DAL) 的比较【英文标题】:Comparison of two separate Data Access Layers (DALs) of a project 【发布时间】:2015-02-10 06:17:05 【问题描述】:我有一个项目的两个单独的 DAL,我想比较它们,看看哪个 DAL 在性能方面更好。我想到的性能指标是内存、查询的执行时间等。 我遇到的问题是:
1) 我使用了 Visual Studio Profiler 并生成了两个报告,但在某些情况下,两个项目共有的值不匹配。(我已经读过这应该归咎于这个工具)
2) 我在两个 DAL 中都有一个插入方法,我想比较其性能,所以当我使用比较报告选项时,它不显示值,因为比较的是不同项目中的方法。
对我可以使用的方法的任何建议都会有所帮助。
另外,就我而言,分析是判断应用程序性能的唯一方法吗?
【问题讨论】:
【参考方案1】:分析工具通常会严重扭曲测量结果,因此您得到的结果不一致也就不足为奇了。
我建议只使用 Stopwatch 来测量一个循环,假设通过每个 DAL 进行 100000 次数据库访问操作。您可以测量每次操作的平均时间,以及总的测试持续时间。
当循环运行时,让 Perfmon 显示 CPU 的计数器,.NET CLR Memory\# Bytes in all heaps
,.NET CLR Memory\% Time in GC
。从数据库中测量事务吞吐量也很有用,例如 MSSQL$SQLEXPRESS\Transactions/sec
和 MSSQL$SQLEXPRESS:SQL Statistics\Batch Requests/sec
(假设您使用 SQL Express;其他 DBMS 通常也提供类似的计数器)。
我认为这应该给你足够的信息来决定。
【讨论】:
秒表真的很有帮助。如果我想查看执行查询所花费的时间,您能否提出类似的解决方案??以上是关于项目的两个独立数据访问层 (DAL) 的比较的主要内容,如果未能解决你的问题,请参考以下文章