go语言文件大小 go语言编译文件过大

Golang 的静态编译

Go 语言和 C 语言的一个很大的区别是, Go 语言只静态编译,做个测试:

站在用户的角度思考问题,与客户深入沟通,找到陆丰网站设计与陆丰网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、主机域名、网页空间、企业邮箱。业务覆盖陆丰地区。

一方面是 Go 语言编译后的可执行文件大小比 C 语言的大很多,

另一方面是 C 语言的可执行文件需要依赖 glibc 动态库,

用 ldd 命令可以看出来:

或者直接删除 glibc 动态库, C 可执行程序报错,而 Go 的还能运行:

这时候只有内部命令可以运行,外部命令,包括 ln 甚至最常用的 ls 命令也不能运行了:

设置好 LD_PRELOAD 环境变量之后, ln 命令可以运行,但是 sudo 仍然不能运行

只能靠 root 用户来重新创建软连接了:

所以用 sudo 来 rm 文件要小心,还是用 root 比较好。如果没有预先留一个打开的 root 终端,登录都登不进去。

go和rust打包软件大小

0.86MB。go和rust打包软件大小是0.86MB,go和rust的软件包是属于整套的软件包,需要将go和rust软件包在windows的原文件里进行协同式解压,只有经过协同式解压之后才能进行安装使用。

Go 读取大文件

测试文件使用的文件大小为 1.35GB 的日志文本文件,使用下面两种方式来读取。

Go 标准库中包含了读写的缓冲库,直接使用即可:

输出结果为:

Go 标准库中包括了 io 读写的相关工具包,直接开箱即用:

输出结果为:

结果对比

测试发现, ioutil.ReadFile 比 bufio 读写还要快。


分享标题:go语言文件大小 go语言编译文件过大
URL地址:http://hbruida.cn/article/doecdjh.html