您好,我的朋友目前正在使用 SOA 架构开发应用程序,他给我发了一张很多层(几乎 10 层)的图片,他担心性能问题,该应用程序是在 VB.Net 2.0 和 3.5(一些库)上开发的。他不懂英语,我尽我所能帮助他,但我认为是时候获得一个表演工具了。
谢谢
您好,我的朋友目前正在使用 SOA 架构开发应用程序,他给我发了一张很多层(几乎 10 层)的图片,他担心性能问题,该应用程序是在 VB.Net 2.0 和 3.5(一些库)上开发的。他不懂英语,我尽我所能帮助他,但我认为是时候获得一个表演工具了。
谢谢
您应该使用分析器。这是 Visual Studio Profiler Teams 博客的链接:http: //blogs.msdn.com/profiler/
那里有很多很酷的东西。
我已经为此使用了我的单元测试,基本上通过每一层运行相同的测试数据,所以你从最低层(可能是数据库访问对象)开始。获得一些时间。然后向上测试下一层,继续往下看,你可以看到每一层的性能影响如何。
您可能希望运行测试 10 次或 100 次,并获取测试前的时间,然后是测试后的时间,并打印出差异,这样您就可以取出一些随机差异。
我有足够的测试数据来保证 100 次测试的唯一性,这样我就可以消除数据库缓存查询并使用它的任何机会。
这听起来很适合混合分析(ANTS Performance Profiler 是一款可靠的产品,但还有其他付费和免费的替代品)和集成/性能测试。
十层似乎很多,我们有一个“准” SOA 应用程序(所有服务都在内部公开,通过它们的消息几乎完全由单个客户端应用程序消耗)通常仅包含 4-5 层:
Database > Web-Service > Web-Service Proxy / Persistence Layer > Data Layer > UI
由于这完全与我们世界中的客户端体验有关,我们可以在运行调试构建的客户端上使用 ANTS,并查看遍历所有层和备份所需的累积时间——我们的瓶颈很少出现在客户端代码之外。