gpt4 book ai didi

html - Google App Engine - 缓存生成的 HTML

转载 作者:技术小花猫 更新时间:2023-10-29 11:59:29 24 4
gpt4 key购买 nike

我已经编写了一个 Google App Engine 应用程序,它以编程方式生成一堆 HTML 代码,这些代码对于登录我系统的每个用户来说都是相同的输出,而且我知道当代码运行时这将是低效的投入生产。所以,我试图找出缓存生成页面的最佳方法。

最可能的选择是生成页面并将它们写入数据库,然后检查给定页面的数据库放置操作时间与上次更新代码的时间。然后,如果代码比上次放入数据库的代码更新(对于特定的 HTML 请求),将生成并提供新的 HTML,并将其缓存到数据库中。如果代码比上次放入数据库的代码旧,那么我将直接从数据库中获取 HTML 并提供它(因此避免了生成 HTML 的所有 CPU 浪费)。我不仅希望最大限度地减少加载时间,而且希望最大限度地减少 CPU 使用率。

但是,我遇到的一个问题是我不知道如何以编程方式检查上传到应用引擎的代码版本何时更新。

我愿意接受有关此方法或其他缓存生成的 html 的方法的任何建议。

请注意,虽然 memcache 可以在这种情况下提供帮助,但我认为这不是最终解决方案,因为我实际上只需要在代码更新时重新生成 html(而不是每次 memcache 过期时)。

最佳答案

按速度排序:

  1. 内存缓存
  2. 在数据存储中缓存 HTML
  3. 完整页面生成

您的缓存解决方案应该考虑到这一点。本质上,无论如何我可能会推荐使用内存缓存。在大多数情况下,它会比访问数据存储更快,并且当您生成大量 HTML 时,缓存的主要好处之一是您可能不必承担访问数据的 I/O 损失店铺。如果您使用数据存储进行缓存,您仍然会遇到 I/O 损失。除非您有一个非常复杂的页面,否则重新生成所有内容和从数据存储中的缓存 html 中提取之间的区别可能相当小。从 memcache 中获取一堆非常快速的缓存并每隔一段时间进行一次完全重新生成可能比每次调用数据存储更好。没有什么可以阻止您在更新时使 memcache 中缓存的 HTML 无效,并且如果您的流量足够高以保证这样做,您始终可以使用多级缓存系统。

但是,我主要担心的是这是过早的优化。如果您还没有流量,请将缓存保持在最低限度。 App Engine 提供了一组非常方便的性能分析工具,您应该在至少获得几个 QPS 的流量后使用这些工具来识别瓶颈。

无论何时进行性能优化,都应先进行测量!许多性能“优化”结果要么比原来慢,完全相同,要么具有负面的用户体验特征(如陈旧数据)。在确定必须进行优化之前不要进行优化。

关于html - Google App Engine - 缓存生成的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1930956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com