• 在克服Web应用程序性能障碍方面的任何个人经验?
  • 是否有任何建议的策略来改善数据驱动的Web应用程序的性能?

我的开发团队致力于使用Oracle数据库(PL / SQL)的Web应用程序(JSP报告,HTML,JavaScript)。 应用程序提供的关键功能在于报告,用户可以在高级别获取报告的PDF,并深入到较低级别的支持详细信息。

随着支持详细记录的数量已经增长到数百万,系统的性能显着下降。 根据我们当前对指标的分析,瓶颈似乎在于达到数据库和数据库性能的逻辑。 目前正在探索更改数据库模型并重新执行某些服务器端逻辑。

分区,索引,解释计划和运行统计数据是在数据库方面已经完成的尝试帮助提高性能的事情。 虽然他们有所帮助,但他们还没有令人满意地解决这个问题。 分析性能数据最棘手的部分是数据库和Web服务器由IT组织的不同部分远程管理,因此开发人员没有定期的完全访问权限来查看正在发生的事情(特别是在生产环境中,在任何其他开发/测试环境中都没有完全镜像。

===============>>#1 票数:6 已采纳

虽然我的回答可能没有任何具体步骤来帮助我始终在这里开始。

我要做的第一件事就是尽量抛弃所有关于问题所在的假设,并采取措施在任何地方安装指标。 让指标指导你而不是你的直觉。 我追逐许多很多很多白兔正在预感......让我失望的次数比他们说的还要多。

===============>>#2 票数:2

您是否考虑过提前构建数据? 换句话说,是否会一次又一次地请求数据组? 如果是这样,在用户询问之前准备好它们。 我并不是在谈论缓存,但我认为这是等式的一部分。

从代码中退一步并检查系统的使用模式可能是值得的。 例如,如果您向人们显示月度库存或销售信息,他们是否仅在月底查看? 如果是这样,只需在最后一天构建数据并存储它。 如果他们每天查看它,可以尝试构建每个前几天的结果并存储结果并避免计算。 我想我最终会推动你进入动态编程解决方案; 如果你知道答案就不能再解决了。

===============>>#3 票数:2

你看过这个吗?

从雅虎卓越绩效团队快速制作网页的最佳实践

如果你真的在后端遇到麻烦,这无济于事。 但是我们使用他们的建议来提高我们网站的速度,还有更多工作要做。

还可以使用FireSug的YSlow插件。 当你看到实际时间被占用的时候,你可能会感到惊讶。

===============>>#4 票数:1

正如Webjedi所说,指标是你的朋友。

还要看看你的堆栈,看看哪里有缓存的机会 - 然后尽可能无情地使用!

===============>>#5 票数:1

正如我在另一个问题中所说:

使用分析器。 是的,他们花钱,使用它们偶尔会有点尴尬,但它们确实为你提供了更多真实的证据,而不是猜测。

在猜测性能瓶颈所在的位置上,人类普遍不好。 它似乎是我们的大脑不能很好地建立的东西。 看起来很明显,你可能对问题是什么有很好的想法,但现实世界常常会做出不同的事情。 并且优化错误的代码部分意味着充其量只需要很少的工作以获得最小的利益。 更常见的是,它会使事情变得更慢,有时它会完全破坏事物。 因此,在为优化而进行任何更改之前,您应该始终从分析器或其他准确工具获得真实证据。

===============>>#6 票数:1

并非所有的分析师都花费(额外)资金。 对于.Net,我成功地使用了一个旧版本的NProf(目前已经废弃,但它仍然适用于我)来分析我的ASP.Net应用程序。 对于SQL Server,查询探查器是程序包的一部分。 还有来自MS的CLF Profiler,但我从来没有能够让它成功运作。

话虽这么说,分析师肯定是要走的路。 这样你就可以看到你的程序大部分时间花在哪里,而不是专注于你认为很慢的事情。 此外,它意味着您无需在代码中编写任何内容即可实际记录指标。

正如我在开头所暗示的那样,有不同类型的分析器。 我发现最有用的三个是应用程序分析器,它们可以让您查看实际花费大部分时间的功能。第二个是SQL分析器,可以让您查看运行查询所需的时间。 第三种是内存分析器,它有助于向您显示内存耗尽的对象类型。 所有这三个都非常有用,虽然你不会每天都使用它们,但是你使用它们的时间将为你节省很多麻烦。

  ask by translate from so

未解决问题?本站智能推荐:

3回复

是否有关于Web应用程序性能调整的好书? [关闭]

我想阅读如何有效使用缓存,优化数据库架构和查询,应用分区和负载平衡。 有很多资源可用于优化代码和低级内容,而其他资源则没有。 我读过Cal Henderson撰写的《 构建可扩展的网站》 ,除了实际上只涉及缩放的一章内容,这几乎没有涉及表面,里面没有什么有趣的东西。 是否有关于We
3回复

如何提高AJAX应用程序的性能?

我们都知道,过早的优化是邪恶的。 优化几乎总是涉及某种权衡 - 使系统更复杂,更难理解和调试等。 过早优化意味着(我认为)“在您知道问题之前进行优化 - 甚至是否存在问题。” 在这种情况下,你正在做出所提到的牺牲之一并得不到任何回报。 因此,一个坏主意。 另一方面,我真的认为杰
2回复

性能调整,Web应用程序

J2ee Web应用程序性能调整的可能方法是什么? 实际上页面需要花费一些时间来加载..i能够缓存数据库结果
2回复

您为Web应用程序使用哪种性能测试方法? [关闭]

我想对典型的Web应用程序进行性能测试。 该应用程序提供了一些web2.0功能,例如编写博客,Wiki,搜索内容等。 我已经分析了访问日志,并了解了用户真正经常做的事情。 我脑中的鸿沟是如何进行的? 我想到以下方法: (A)将功能拆分为事务(编写博客文章,查看Wikipag
1回复

基于SOA的应用程序/网站是否快速,如何提高性能和速度?

目前,我有一个基于Java的网站,该网站使用JDBC与本机集成。 但是现在我开发了一个android应用程序和一个iOS应用程序,它们在本机应用程序中提供相同的网站功能。 目前,Android和iOS应用都已与网站项目连接以访问API 我现在的想法是用Java创建一个单独的项目,该项目
2回复

高性能Web(服务)应用程序

我想成为高性能(100k和更多视图/请求)Web和Web服务应用程序的专家。 您建议您看什么技术/模式/技能? 基本上,我在基于ASP.NET/.NET的Web开发方面具有良好的技能,但是我想知道有多大的东西(在任何平台上,都不依赖于.net技术堆栈)。 谢谢。
1回复

如何测试Web应用程序性能?

我们有一个Web应用程序(uisng ASP.Net和Alaska WAA ),它是多年前设计的(不是由我的团队设计的)。 它主要通过WAA使用Alaska's Xbase++代码来查询数据库并生成HTML响应。 先前它在win 2003和IIS 6上运行。现在,此Web应用程序已迁移到新环
1回复

Web应用程序的可扩展性和性能

谁能推荐一本好书,其中讨论了构建高度可扩展的Web应用程序时的性能注意事项? 我正在寻找一本对我有帮助的书 构建高度可扩展的Web应用程序帮助合并不同策略以提高性能
2回复

高性能Web应用程序框架

我正在尝试构建一个与本机Android应用程序一样灵敏的Web应用程序。 那有可能吗? 我们尝试了PhoneGap和SproutCore,但响应速度不够。 有更好的选择吗? 我的意思是,例如,AngularJ在视觉和全方位性能方面与SproutCore相比如何?
4回复

Web应用程序性能基准的建议

我即将开始测试内部网Web应用程序。 具体来说,我要确定应用程序的性能。 有人可以建议我如何判断应用程序的性能的正式/非正式标准。