c# - 测量在 Web 服务的每一层花费的时间

标签 c# performance architecture

我有一个基于多层架构(即表示、逻辑、数据访问等)设计的 WCF REST Web 服务 (.NET 4)。在运行时且没有检测的情况下,我想测量每个层的单个请求花费的时间(例如,Presentation = 2 ms,Logic = 50 ms,Data = 250 ms)。

考虑到我无法更改方法签名以传入秒表(或任何类似的东西),你将如何完成这样的事情?

谢谢!

最佳答案

如果您无法将代码添加到您的解决方案中,您最终将使用探查器来检查代码的作用,但我只建议在生产环境以外的环境中这样做,除非您只是遇到性能问题。有很多方法可以在负载下设置另一个环境和配置文件。

探查器将连接到您的代码并检查每个方法需要多长时间。没有“这是业务层性能”的魔法,因为分析器实现物理边界(类、方法)而不是逻辑边界,但您可以检查输出并确定速度。

如果您可以触摸代码,则可以添加其他选项,这些选项可以通过配置打开和关闭。既然你已经声明你不能更改代码,我想这是一个不可选择的选择。

关于c# - 测量在 Web 服务的每一层花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572916/

相关文章:

c# - C#中如何判断一个数组是否存在?

database-design - 实体之间的抽象引用

architecture - ESP在 assembly 中是什么意思?

c# - 将 ReadAsStreamAsync 与 StreamReader 一起使用时出现 "stream was not readable"ArgumentException

c# - "System.IO.IOException: The process cannot access the file ' C :\Test\test. 文本 ' because it is being used by another process"

c# - C# 中的 I/O 级联

c# - 在 C# 中确定未修剪的字符串是否为空的最有效方法是什么?

sql-server - union 与 union all 的表现

c++ - std::queue<T, list<T>>::size() 在 O(n) 中很慢?

Python 应用架构