项目的两个独立数据访问层 (DAL) 的比较

Comparison of two separate Data Access Layers (DALs) of a project

我有一个项目的两个独立 DAL,我想比较它们,看看哪个 DAL 的性能更好。我想到的性能指标是内存、查询的执行时间等。 我遇到的问题是:

1) 我使用了 visual studio 探查器并生成了两份报告,但在某些情况下,两个项目共有的值不匹配。(我读到过这种检测是罪魁祸首)

2) 另外,我在两个 DAL 中都有一个插入方法,我想比较其性能,因此当我使用比较报告选项时,它不显示值,因为比较的是不同项目中的方法。

对我可以使用的方法的任何建议都会有所帮助。

此外,对于我的情况,分析是判断应用程序性能的唯一方法吗?

分析工具通常会严重扭曲测量结果,您得到的结果不一致也就不足为奇了。

我建议只使用 Stopwatch 来测量一个循环,比方说通过每个 DAL 的 100000 个数据库访问操作。您可以测量每个操作的平均时间,以及总的测试持续时间。

当循环为 运行 时,Perfmon 显示 CPU、.NET CLR Memory\# Bytes in all heaps.NET CLR Memory\% Time in GC 的计数器。测量数据库的事务吞吐量也很有用,例如 MSSQL$SQLEXPRESS\Transactions/secMSSQL$SQLEXPRESS:SQL Statistics\Batch Requests/sec(假设您使用 SQL Express;其他 DBMS 通常也提供类似的计数器)。

我认为这应该为您提供足够的信息来做出决定。