Java Web 应用程序性能改进技巧

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(376)   2023-06-26 07:54:18

Web 应用程序的性能对于任何公司和任何客户的项目成功都非常关键。您应该对可能的瓶颈及其解决方案有一个良好的思考过程。

最近,博客读者之一斯里曼向我提出了这个问题。好吧,我认为这个问题的答案可能会帮助更多的人,所以我在这里发布答案。

性能提示

你们中的许多人都同意性能本身是一个相对术语。一个性能出色的应用程序可能会让其他人或您的客户完全失望。因此,与任何其他相关测量一样,您也必须遵循此处的基础知识。

  1. 定义(很棒的)性能基准:

    您需要做的第一件事就是确定什么是适合您的性能。它应该是时间单位或资源利用率方面的可衡量目标。

  2. 确定问题区域:

    定义基准数据后,使用工具确定应用程序落后于基准数据的区域。深入到代码中的语句级别。确定哪些代码片段导致性能下降。列出它们中的每一个并在整个过程中跟踪每个部分。注意:请记住,过度优化往往会带来更大的伤害。所以请明智地选择。

  3. 解决每个问题并衡量差异:

    与您的团队成员就每个问题进行头脑风暴,并找到解决该问题的最佳方法。一次一个。比较每个问题的每个解决方案,并记录他们的结果。

  4. 衡量整体性能:

    最后,衡量整体应用程序性能改进并与基准进行比较。它仍然落后,然后重复所有步骤。

虽然上述步骤在确切需要完成的意义上是完整的——以可衡量的方式提高性能,但您需要记住以下几点:

  • 跳出框框思考。例如如果数据库查询需要时间,那么与其过度优化 SQL 语句,不如考虑使用缓存。
  • 永远不要假设/猜测任何事情。始终进行建议的更改,并记录它的性能。
  • 借助自动化。使用工具在每次更改后捕获性能。这将使生活变得更加轻松。
  • 避免过度优化。更喜欢代码的简单性和可维护性。
  • 同时考虑使用功能更强大的高级硬件/网络解决方案。他们有时会产生很大的影响。

永远记住,性能是相对的经验。 向您的客户征求反馈意见。如果他们满意,则永远不要尝试修复您的应用程序中的任何内容。

我希望上述思考过程可以帮助您在优化任何应用程序的性能时克服这种复杂情况。

快乐学习!!

地址:https://www.cundage.com/article/improving-web-application-performance.html

相关阅读

Learn about various Java 中的数据类型. Learn the differences between 原始数据类型 and non-primitive datatypes...
我们一直在为几乎每个行业标准应用程序的代码中使用处理java 自定义异常。通常的方法是创建一些自定义异常类来扩展基础 exception handling best practice 这可能会让...
这篇博文是此博客中提供的best practices 系列中的另一篇博文.在这篇文章中,我将介绍一些众所周知的和一些鲜为人知的做法,您在下一次 Java 编程作业中处理异常时必须考虑这些做法。点...
Java 序列化 允许将 Java 对象写入文件系统以永久存储或在网络上传输到其他应用程序。 Java 中的序列化是通过Serializable 接口实现的。 Java Serializable...
Web 应用程序的性能对于任何公司和任何客户的项目成功都非常关键。您应该对可能的瓶颈及其解决方案有一个良好的思考过程。 最近,博客读者之一斯里曼向我提出了这个问题。好吧,我认为这个问题的答案可能...
如果您长期从事软件开发,那么您很容易就会感受到单元测试的重要性。专家表示,如果我们遵循这些编写 junit 单元测试的最佳实践,大多数错误都可以在单元测试阶段本身捕获,最终会传递给质量团队。 "...
Java 命名约定 是一种准则,应用程序程序员应遵循这些准则以在整个应用程序中生成一致且可读的代码。如果团队不遵循这些约定,他们可能会集体编写难以阅读和理解的应用程序代码。 Java 大量使用C...
学习编写 Java 程序来反转字符串。我们将首先看到如何反转字符串,我们还将看到如何反转字符串中的单词。 这是 Java 面试 初学者级别的常见问题。让我们记住这些解决方案以便快速回忆。 1.J...
在面向对象的编程语言中,类是任何应用程序的构建块。如果这些块不坚固,那么构建(即应用程序)将在未来面临艰难时期。 当应用程序范围扩大时,设计不当的应用程序可能会导致团队陷入非常困难的境地,或者实...
这里的result path是指JSP文件或其他视图文件的位置,Struts 2在执行Action类中的代码后将解析这些文件。这些结果路径在 Action 类顶部的 @Result 注释的“位置...