65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 代码分析器加速 PlanGen Web 应用程序

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2004年4月20日

4分钟阅读

viewsIcon

33637

使用 ANTS Profiler 优化代码,降低硬件成本并提高应用程序性能。

这是我们CodeProject赞助商的展示评论。这些评论旨在为您提供我们认为对开发人员有用且有价值的产品和服务信息。

引言

业务目标
识别在线养老金计划系统中的瓶颈,以提高响应时间。

技术挑战
PlanGen 的 Web 应用程序每天响应数百个退休计划场景的请求。繁重的流量与复杂的计算相结合,显著减慢了在线交易速度。

解决方案
使用 Red Gate Software 的 ANTS Profiler 识别应用程序中的慢速进程,然后调整相关代码以减少发起的数据库查询数量。

结果
PlanGen 将响应时间从 5.4 秒缩短到 0.8 秒——近七倍的速度——并减少了所需的 CPU 资源量。

调查显示,用户需要等待超过五秒钟才能完成在线请求就会感到沮丧,有时甚至会放弃网站。由于典型的响应时间超过五秒,软件公司 PlanGen 知道它必须加快其在线养老金计划系统的代码。

数据库访问过载

PlanGen 的 IllustrationNET412(i) 是一个数据库驱动的提案生成器和存储系统,使用 Microsoft Visual Studio .NET 以 C# 编写。该 Web 应用程序允许保险代理人为客户展示退休计划场景。

IllustrationNET412(i) 使用公司员工数据库,并根据保险公司和年金公司的独特产品费率表量身定制的精算算法生成提案。这些提案分析并预测所有公司员工直到退休的退休场景。这需要复杂的计算和数据库,这些数据库在员工的任期内可能会改变数万次。

“Web 服务器调用数据库服务器以读取和写入特定员工在不同年龄的保险和年金费率,计算人寿保险和退休账户的价值,并生成说明文件,”PlanGen 的高级开发人员兼执行合伙人 Eric Edelstein 说。

具体来说,基于 Web 的前端会调用 Web 服务器上 C# 模块中的业务逻辑层。这些模块从 SQL Server 中存储的过程收集所需数据。然后将数据返回到业务逻辑层进行处理,最终组装成自定义数据集,并写入 SQL 数据库中的报告/存储表中。最终的计算数据集从数据库中检索,并在 Web 服务器上显示为 .aspx 页面或以 PDF 文件输出到客户端浏览器。

这一过程,再加上数百人将员工列表添加到系统并修改提案以产生不同的退休成本/效益场景,极大地影响了托管该应用程序的 Dell Pentium 服务器的性能。生成提案的过程平均每位员工需要大约 5.4 秒。

“据我们所知,数据库和 Web 服务器都已优化,但对于多用户系统的生产而言,这个过程太慢了,”Edelstein 说。

简化数据库查询

PlanGen 过去一直将代码嵌入到屏幕上显示的调试语句中,以查看系统瓶颈所在。然而,这种方法并未帮助开发人员找出问题。PlanGen 决定购买 Red Gate Software 的 ANTS Profiler,该工具可以识别 .NET 应用程序中运行缓慢的代码行并精确定位问题,从而使开发人员能够修改未按预期执行的例程或模块。

在不到 10 分钟的时间里,ANTS Profiler 揭示了大部分时间都花费在从 SQL 存储过程中检索数据的数千次业务逻辑循环调用上。

“数据库调用开销是罪魁祸首,”Edelstein 说。“每位员工的处理过程需要 5.4 秒,其中大约四秒钟都花在了这上面。”

PlanGen 没有强迫 Web 应用程序的业务逻辑模块在计划计算过程中不断调用数据库查找值,而是在 Web 应用程序接收到第一个请求时将查找表加载到内存数组中。

“一旦这些数组被初始化并存储在处理业务逻辑的 Web 服务器内存中,我们就可以消除单独的数据库查询,”Edelstein 说。

更多容量,更少时间

在优化了 ANTS Profiler 发现的最慢的例程后,PlanGen 的系统将每位员工的响应时间从 5.4 秒缩短到 0.8 秒——速度快了近七倍。

“我们的应用程序不仅对用户来说更快,而且我们还可以支持每个服务器更多的请求,使用更便宜的硬件,并保留开销处理能力,因为我们不再消耗过多的 CPU 资源,”Edelstein 说。

PlanGen 现在会在其编写的所有代码上运行 ANTS Profiler。“根据我在 ANTS 中看到的,我会编写更高效的应用程序代码,并现实地重新思考多服务器、多层系统架构,”Edelstein 说。“即使没有明显的资源或速度问题,代码也可以得到优化,成本可以降低,性能也可以提高。”

更多信息

要了解 ANTS Profiler 的其他用户 对该产品的评价,并通过下载 免费、功能齐全的试用版 来查看 ANTS Profiler 与您的应用程序的兼容性。

© . All rights reserved.