我有一个体系结构问题,而且自从SO要求我以来,我不得不多次重写问题标题。因此,请随时进行更正。我不是缓存相关问题的专家,所以我非常感谢有关架构问题的一些见解。
所以情况是这样的。我们有一个基于Web的设计应用程序(前端Javascript,后端PHP),向使用在线创作作品的客户展示大量剪贴画图像。早些时候,我们的应用程序已加载到AWS机器中,过去我们曾经将剪贴画图像也本地存储在同一服务器中,以便不进行任何网络传输来加载剪贴画,从而使设计应用程序的加载时间更快。客户创建的设计还保存到直接连接到基于Web的设计应用程序(采用JSON和关系模型)的后端MySQL服务器中。
在一个新团队加入制作此应用程序的移动版本之前,他们坚持认为应该从“中心位置”为我们的Web应用程序和他们正在创建的移动应用程序加载剪贴画。他们还说,设计还应该存储在“中央数据库”中,以供网络和移动应用访问(并且对JSON结构也进行了一些重大的重新架构)
因此,最终,体系结构发生了变化,因此剪贴画现在位于一个集中的位置(S3服务器)。并且有一个“资产交付和存储(ADS)系统”,我们的设计应用向该系统提出剪贴画图像的请求并得到服务。 (请注意,剪贴画库非常大,并且仅根据各种参数(例如设计样式,客户帐户类型等)提供剪贴画图像的子集。)因此,此任务现在由ADS系统(用python编写)完成。
并且由于我们的Web设计应用程序不再具有剪贴画的本地存储或剪贴画过滤的逻辑(委托给ADS,因此不再有服务器端PHP),它也已成为纯粹基于Web的(前端Javasdcript)无需任何服务器要求的应用程序,随后移至S3。
现在真正的问题是,与在服务器上存储剪贴画的情况相比,我们的Web应用程序在初次加载时似乎要慢得多。我读到,如果某个应用程序请求图像,则这些图像将存储在浏览器中,并且如果客户(例如,在该缓存过期之前加载相同的订单),则无需将重复的请求发送到服务器(在这种情况下是ADS)。
如果是这样,那么我真的可以指出,将剪贴画图像从设计应用程序服务器移至ADS系统,并且每次发送设计时都必须发送请求并加载它们,这有助于部分是因为设计应用程序的近期运行缓慢?
大多数时候,我还听到这样的回答:“移动应用程序也能做到相同且更快”。我不是移动开发人员。是否有一些移动缓存技巧可以帮助移动应用程序比纯基于Web的设计应用程序更“高效缓存”,因此即使两者的架构相同(发送剪贴画请求ADS),移动应用程序会以更好,更有效的方式吗?
尾注:我知道我没有在问特定的编程问题。但是从我在这里阅读的一些笔记中,SO是一个面向程序员的社区,而且我不知道有哪个社区能很好地回答与编程相关的问题。我遇到的体系结构问题是我在工作中遇到的与编程有关的真正问题,可悲的是,我没有足够的技巧来理解所有最近的体系结构更改是否都存在导致我们的Web应用程序性能显着下降的缺点。
感谢阅读,我将非常感谢您提供任何指向阅读的链接甚至链接,以更好地理解这一点。
答案 0 :(得分:0)
在chrome中,打开开发者工具,然后点击“网络”标签。 90%的时间您可以从那里识别出速度较慢的资源。