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语言编译文件过大
网页链接:http://lswzjz.com/article/doecdjh.html