是否有任何解决方案可以提高 Web 应用程序的性能和可扩展性 [关闭]
Posted
技术标签:
【中文标题】是否有任何解决方案可以提高 Web 应用程序的性能和可扩展性 [关闭]【英文标题】:Is there any solution to improve the performance and scalability of a web app [closed] 【发布时间】:2021-10-18 13:25:53 【问题描述】:我有几个问题,如果有人可以向我解释以下情况。
当我们开始构建产品时,我们是一个非常小的团队,我们需要快速证明价值。因此,将整个产品构建到单个 Web 应用程序中是很有意义的,因为这使得它非常易于管理。然而,随着公司和产品多年来的发展,我们开始面临这种架构的一些问题:
网站上的某些操作计算量很大,因此需要很长时间才能完成(由于需要处理的数据量增加,问题变得越来越大) 我们在应用程序中引入了越来越多的概念,例如发票、债务人、债权人、付款、账单、收据等 团队已经壮大,因此我们“互相踩脚”的可能性更高老实说,我们已经解决或正在解决这些难题,但它们仍然为一些有趣的问题奠定了基础:
- 您会采取哪些措施来提高此类网络应用的性能和可扩展性?
【问题讨论】:
首先,请阅读速度咆哮:ericlippert.com/2012/12/17/performance-rant 以验证是否存在需要解决的问题。并确保你清楚地定义了问题。 不幸的是,您的问题是数量级的广泛和模棱两可的帮助您。这个问题很可能会在短期内结束,因为它是不可挽救的。如果您遇到特定问题,我们或许可以为您提供帮助。 @Cristopher 我知道有些问题可能会在这里重复或回答,但我找不到任何关于这个问题的信息。我不知道如何指定和清楚地描述问题。我只想到这两个问题。 您没有a问题。你得到了可能出现的问题的完整列表,并希望为所有这些问题提供解决方案。问题应该是关于一个特定的问题,有一个(大部分)明确的答案。这归结为“帮助我设计我们的软件制作过程”。联赛扩大。 |一个具体的问题是“网站上的某些操作在计算上非常繁重,因此它们需要很长时间才能完成(由于需要处理的数据量增加,它变得越来越大)”,与具体数据和问题如何改进它。 我可以重新设计我的问题并提出具体的问题吗? 【参考方案1】:您所描述的问题正是微服务架构试图解决的问题。
首先,您应该开始识别应用程序的哪些部分独立于其他部分(例如,计费可能与其余部分无关),以便识别不同的“有界上下文”或不同的业务领域。
然后,您需要了解应用程序不同部分之间的通信流程,并定义最佳策略以尽可能减少这种通信,以及如何在不同服务之间进行。
然后,当您设计好如何拆分应用程序、通信、数据模型等时,您应该开始使用这些功能块从您的原始服务开始一个一个地创建较小的服务,并继续一个一个地执行此操作,直到你有不同的域在不同的服务中解耦。
互联网上有很多关于如何将单体应用拆分为微服务的文档。
当您实现这一目标时,您将解决可扩展性、交付速度以及多个开发人员并行工作的问题
【讨论】:
【参考方案2】:也许你已经这样做了,但第一步是
1. run your web app through performance tab in Chrome Developer tools. This will give you complete suggestions report on improving
the performance.
2.Go to Memory tab in Chrome Developer tools and profile heap snapshot to see memory distribution.
3.In Network tab see for every navigation how many network calls you are making and how much data is getting downloaded.
4.Encode and download common images at once.
5.Remove unused assets, font families, unused and older version of libraries.
6.Minify all your js scripts
7.Check what is making your Content visualization speed lag
【讨论】:
以上是关于是否有任何解决方案可以提高 Web 应用程序的性能和可扩展性 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章