Golang Go语言 template模板性能怎样呢?有相关对比的文章吗?与静态html文件比起来相差多少呢?

发布于 1周前 作者 phonegap100 来自 Go语言

假设一个小说网站,走 template 模板方式的话,模块操作里面就去 redis 缓存获取一下数据最后渲染生成 html 返回展示。

走 html 方式的话,就需要一开始生成所有章节页面的 html 文件。

想请问这两种方式就加载一个页面的速度来说的话相差会是多少呢?如果有相关解说文章就更好啦。
Golang Go语言 template模板性能怎样呢?有相关对比的文章吗?与静态html文件比起来相差多少呢?

14 回复

如果光是”模板“这个很简单,你自己写个代码例子测试一下不就清楚了。

实际上问题会更复杂,比如你要根据模板生成,你的数据来源要快,假如你数据库放国内,生成服务器放国外,那就慢的不得了(实际上可能不会这么极端),那样的话,先在本地生成所有的 HTML 再上传会更好。

还有就是服务器的 CPU 性能,内存性能等。如果是垃圾服务器,那也是先生成 HTML 比较好。

如果数据来源够快,我是建议用 模板生成,那样单个即时生成所费的时间很小,毫秒级别。再加上各种缓存(缓存在磁盘上,REDIS 中,CDN 中),能大大缓存生成压力。模板即时生成的最大好处就是可以随时修改样式模板,随后再次访问就是新的样式了。也不用随便小修改就要重新生成一次所有页面,那可能会费很多时间。

更多关于Golang Go语言 template模板性能怎样呢?有相关对比的文章吗?与静态html文件比起来相差多少呢?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


建议还是前后端分离,适合分工。

这…到了考虑这种东西的性能问题的时候吗.

数据库稍微设计合理点性能提升估计要比这个大一万倍.

性能测试可以参考 2 楼,再说静态文件,如果服务器磁盘垃圾 html 还真不一定有 go 模板渲染快,别忽略了磁盘 io 瓶颈,不建议生成 html ,go 没那么慢,等你遇到瓶颈了花钱加服务器都是开心的

你问的实际上不是 template 包的问题,是采用服务端渲染或前端渲染的问题。
对于服务端来说,返回 json 还是 html 性能差距微乎其微。
前端渲染的性能,视客户端环境和执行的 js 代码可能会慢上数秒,但现代浏览器都会预编译 js 并缓存,实际上只会在你第一次打开网页时有影响。
采用服务端渲染一般都是为了做 seo ,但会极大增加代码耦合度。某些大厂的做法是再加一层,服务端返回 json 到中间层渲染为 html ,再返回给客户端。除了工作量大增之外,啥都好。
看你用户量和开发人员具体做技术选型把

抱歉 没看清楚贴。无视我吧

有道理,可以愉快的使用模板啦

其实生成静态 html 直接走 cdn 分发也是一种方案,广告部分走动态请求就行,可以大幅减少主站的流量压力

楼主的这个问题我以前也经历过。

两种做法各有各的好处,静态的最大好处在于,你任意一个 WEB 服务器都可以部署,甚至可以用 GITHUB 部署。。。

如果用即时模板,坏处是要运行可执行程序,好处是可以再加一些动态功能,比如 搜索啥的。。

小说网站,如果小说数量大的话,并且一个页面跟另一个页面有关联,列表分页,tag 页,主页等等。修改一次,整站重新生成一次得几百万上千万个页面。
hugo 那种只适合个人博客这种小玩意

我觉得可以看业务的场景… 看读写比例, 高频写的话, 是不是会经常构建, 导致代价较大?

作为IT营GO语言方面的专家,对于Golang的template模板性能有一定了解,以下是对该问题的详细解答:

Golang的template模板性能非常出色,尤其在处理动态数据与静态HTML模板结合的场景时,其高效性和灵活性得到了充分体现。与静态HTML文件相比,使用template模板可以大大提高Web应用的开发效率和可维护性。

虽然目前没有直接对比Golang template模板与静态HTML文件性能的文章,但可以从以下几个方面进行考量:

  1. 渲染速度:template模板通过预编译和缓存机制,能够快速地渲染页面,尤其在处理大量数据和复杂逻辑时,其性能优势更加明显。
  2. 动态性:template模板支持条件判断、循环、变量赋值等动态功能,这使得页面内容可以根据不同的数据和逻辑进行灵活调整,而静态HTML文件则无法实现这一点。
  3. 安全性:html/template还会自动转义不安全的HTML字符,防止XSS等安全漏洞,这是静态HTML文件所不具备的。

综上所述,Golang的template模板在性能上优于静态HTML文件,尤其在动态Web应用开发中更具优势。

回到顶部