我有一个基于多层架构(即表示、逻辑、数据访问等)设计的 WCF REST Web 服务 (.NET 4)。在运行时且没有检测的情况下,我想测量每个层的单个请求花费的时间(例如,Presentation = 2 ms,Logic = 50 ms,Data = 250 ms)。
考虑到我无法更改方法签名以传入秒表(或任何类似的东西),你将如何完成这样的事情?
谢谢!
最佳答案
如果您无法将代码添加到您的解决方案中,您最终将使用探查器来检查代码的作用,但我只建议在生产环境以外的环境中这样做,除非您只是遇到性能问题。有很多方法可以在负载下设置另一个环境和配置文件。
探查器将连接到您的代码并检查每个方法需要多长时间。没有“这是业务层性能”的魔法,因为分析器实现物理边界(类、方法)而不是逻辑边界,但您可以检查输出并确定速度。
如果您可以触摸代码,则可以添加其他选项,这些选项可以通过配置打开和关闭。既然你已经声明你不能更改代码,我想这是一个不可选择的选择。
关于c# - 测量在 Web 服务的每一层花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572916/