go - 为我用 Go 编写的 Web 应用程序设置什么 GOARCH?

标签 go deployment

我想在 DigitalOcean 或类似的云提供商上部署我的 Web 应用程序(基本上是 CRUD)。我发现我可以设置 GOARCH=386GOARCH=amd64。两者都在我的计算机上正确构建。

如何决定需要在服务器上部署哪一个?有所有流行的选项,例如最新的 Ubuntu、Debian、CentOS。

最佳答案

设置与您的 Droplet 架构相匹配的选项。您可以在 Droplet 列表中查看此内容。请注意,针对 386 平台,您可以在 386amd64 平台上运行它,同时编译为您的 amd64只能在 amd64 上运行。

如果您问选择哪个,那么这取决于您。要知道,某些操作在 amd64 上速度更快(特别是那些使用/涉及 64 位值的操作,如 int64),而且 Go 工具的某些功能仅在您使用时才可用。以 amd64 架构为目标,例如 race detector , Supported Systems :

The race detector runs on darwin/amd64, freebsd/amd64, linux/amd64, and windows/amd64.

对于 amd64 来说,可执行二进制文件的大小和内存使用量要大一些,但对于 Go 来说,这并不是真正的问题,因为一个简单的、正在运行的 Go Web 服务器使用大约 8 MB 的内存。当然,除非您使用像 [big_number]int 这样过大的数组/slice ,因为 int 的大小在 386 和 8 上将为 4 个字节amd64 上的字节。

关于go - 为我用 Go 编写的 Web 应用程序设置什么 GOARCH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445348/

相关文章:

Java WAR部署问题

sql - SSDT,如果我需要将相同的数据库部署到 SQL Server 2008 和 2012,是否需要不同的 dacpac?

.net - 是否可以使用 AWS Elastic Beanstalk 部署到现有的 EC2 实例? 。网

linux - 可执行文件可以动态解析其在文件系统上的位置或其实际的 "resting place"与用户的工作目录吗?

azure - VS Code + Go 扩展 : Turn off Workspace loading

google-app-engine - 谷歌应用引擎 TCP/IP 连接

maven - 在预集成测试阶段使用 maven-tomcat7-plugin 部署到嵌入式 tomcat 时出现 403 错误

python - 如何从 go 语言的 main 中获取不同的退出代码,如 2 或 3?

multithreading - 为什么这个程序在分配的线程越少时运行得越快?

websphere - 使用 wsadmin 远程部署到 Websphere 6.1.x