英文:
What GOARCH to set for my webapp written in Go?
问题
我想在DigitalOcean或类似的云服务提供商上部署我的Web应用(基本上是CRUD操作)。我发现我可以设置GOARCH=386
或GOARCH=amd64
。这两个选项在我的电脑上都可以正常构建。
我该如何决定在服务器上部署哪个选项?有最新的Ubuntu、Debian、CentOS等流行选项可供选择。
英文:
I want to deploy my webapp (basically CRUD) on DigitalOcean or a similar cloud provider. I found out that I can set GOARCH=386
or GOARCH=amd64
. Both build properly on my computer.
How do I decide which one I need to deploy on server? There are all popular options like latest Ubuntu, Debian, CentOS.
答案1
得分: 2
选择与您的 droplet 架构匹配的版本。您可以在 droplets 列表中查看此信息。请注意,如果针对 386
平台进行编译,您可以在 386
和 amd64
平台上运行它,而如果编译为 amd64
,则只能在 amd64
平台上运行。
如果您问应该选择哪个版本,那就取决于您。请知道,某些操作在 amd64
上更快(特别是那些使用/涉及 int64
等 64 位值的操作),而且如果您针对 amd64
架构进行编译,Go 工具的某些功能只能在该架构上使用,例如 race detector,支持的系统:
race detector 可在
darwin/amd64
、freebsd/amd64
、linux/amd64
和windows/amd64
上运行。
amd64
的可执行二进制文件大小和内存使用量略大,但对于 Go 来说,这并不是真正的问题,因为一个简单运行的 Go Web 服务器只使用大约 8 MB 的内存。当然,如果您使用过度大的数组/切片,例如 [big_number]int
,那么问题就会出现,因为在 386
上,int
的大小为 4 字节,而在 amd64
上为 8 字节。
英文:
Set the one that matches the architecture of your droplet. You can view this on your droplets list. Note that targeting the 386
platform you can run it on both 386
and amd64
platforms, while compiling to amd64
you can only run it on amd64
.
If you're asking which to choose, then it's up to you. Know that some operations are faster on amd64
(especially those which use / involve 64-bit values like int64
), and also some features of the Go tool are only available if you target the amd64
architecture, for example the race detector, Supported Systems:
> The race detector runs on darwin/amd64
, freebsd/amd64
, linux/amd64
, and windows/amd64
.
Executable binary size and memory usage is somewhat bigger for amd64
, but it's not really an issue in case of Go, as a simple, running Go web server uses like 8 MB of memory. Unless you use excessively large arrays / slices like [big_number]int
of course, as the size of int
will be 4 bytes on 386
and 8 bytes on amd64
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论