千家信息网

Golang标准库和外部库有什么区别

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下Golang标准库和外部库有什么区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言:我已经在生产中使用 Go 一段时间了,因为它的构建规模较小,并且由 goro
千家信息网最后更新 2026年11月03日Golang标准库和外部库有什么区别

小编给大家分享一下Golang标准库和外部库有什么区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

前言:

我已经在生产中使用 Go 一段时间了,因为它的构建规模较小,并且由 goroutines 提供的并发性能以及直接在机器上运行构建的能力,所以我非常喜欢它的快速和可靠。

由于标准包的速度非常快,您可以在不使用任何第三方库或框架的情况下构建生产就绪的微服务。这并不是说 Go 中没有提供更多灵活性或速度的框架,只是它们不那么受欢迎。

官方通常告诉你坚持使用标准库。具有讽刺意味的是, golang 框架 的顶级 Google 搜索结果一般都是关于为什么不应该使用标准库。

我对标准库的替代品进行了一些研究和基准测试,以了解它们的表现。我将它们分为我认为是关键的微服务组件。

所有基准测试都在下面列出的配置上运行。虽然正常的基准测试时间只有 1 秒,但我将所有测试运行了 10 秒,以确保每个测试周期都是一致的。

  • 处理器 - 2.7 GHz Intel Core i7

  • RAM - 16GB - 16 GB 2133 MHz LPDDR3

  • Bench Time 10s 而不是标准的 1s

  • go test -bench=. -benchtime=10s

1、路由

标准的 http Go 服务器带有一个不错的路由器,可以读取查询参数但不能读取命名参数,例如,

/students/:studentID/grades/:gradeID

任何具有上述嵌套资源的 REST 服务都必须使用外部路由库来解析它们。Gin、Echo、Beego、Gorilla Mux 和 Goji 只是其中几个知名框架(根据 Github 关注量)。

其中一些是具有路由功能的成熟中间件框架,而另一些则仅仅只是路由库。

这些库针对单个命名参数进行了测试,结果如下所示,Gin 拥有最快的路由器,Echo 排在第二位。

2、JSON 序列化和反序列化

一旦 API 请求通过路由器并传递到控制器或处理程序,下一步就是在返回响应时对请求 JSON 或 Encode 进行解码。

Go 有一个非常好的encoding包,它支持多种格式,比如json, XML, csv,但是快速浏览一下替代品会向你展示大量的库。我针对标准encoding/json包对 Jsoniter、EasyJson 进行了基准测试,结果如下。

下面是编码的结果,结果表明性能差异并不显着

但是对于解码 JSON,jsoniter执行速度比标准编码包快 5 倍。

现在,如果您的请求已被解码,下一步可能是应用您的业务逻辑,并可能执行一些数据库操作。

3、是否使用ORM框架

大多数流行的语言都依赖于框架来构建与数据库交互的微服务。在 Java 世界中,Hibernate、Active Record for Rails 和 Django ORM 非常流行。ORM(对象关系映射器)有时有助于更好地处理事务、表之间的关系,并有助于避免为简单连接编写复杂的 SQL。

但是 Go 再次拥有一个非常好的database标准库,它使连接到关系数据库变得非常容易,而且速度也非常快。但是,一个痛点是查询。当您查询某些行时,您必须手动映射行中的每个字段,然后将它们分配给struct. 这有效,但很快就会变得混乱并让您编写大量代码。sqlx是一个库,它允许您将整行扫描到您的结构变量中。

虽然sqlx减少了为构建 CRUD 而编写的典型行数,但最终仍会多次编写重复代码。使用 ORM 可以帮助减少它并专注于您的业务逻辑。

database, database + sqlx, gorm , go-pg 对查询进行了基准测试,下面是结果。令人惊讶的是,go-pgORM 的执行速度比标准包甚至sqlx还要快. GORM虽然在生态系统中非常有名,但速度相对较慢。

在 API 调用的每个步骤中,都有更好的框架或外部库,它们将使您的响应更快并提供一定的灵活性。

看完了这篇文章,相信你对"Golang标准库和外部库有什么区别"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

标准 框架 测试 路由 结果 速度 基准 服务 查询 参数 只是 数据 数据库 路由器 处理 运行 业务 代码 序列 性能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技图片 A股互联网金融科技公司 互联网电商科技 工业互联网科技新基建 北京互联网科技有限公司 友谊互联网络科技 天扬科技互联网广告 海南购全球互联网科技 哈尔滨秒房互联网科技有限公司 成都互联网科技公司100强 昭通云南众福互联网科技有限公司 中化能源互联网科技招聘 互联网科技商业 互联网科技研发水平 互联网科技公司营业执照怎么办理 容联科技互联网电商 版纳互联网科技选哪家 互联网领先科技活动 广西泛欧互联网科技有限公司 广东猫王互联网科技有限公司电话 互联网科技战争 融势互联网科技 互联网高科技股票 亿人帮互联网科技 天速互联网络科技有限公司 重庆互联网医院沙龙医盟信息科技 杭州壁岐互联网科技有限公司 国大互联网教育科技有限公司工作 工业互联网等科技实现智能化赋能 中和天地互联网科技有限公司
0