gpt4 book ai didi

size - ocaml 4.01.0 → 4.02.1,二进制大小变大

转载 作者:行者123 更新时间:2023-12-01 02:13:57 25 4
gpt4 key购买 nike

在 32 位 Ubuntu 14.04 上:

➥ cat test.ml
let () = print_endline "hello";

➥ opam switch list | grep " C "
4.01.0 C 4.01.0 Official 4.01.0 release

➥ ocamlopt test.ml
➥ ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 13:29 a.out

➥ opam switch 4.02.0
➥ eval `opam config env`

➥ ocamlopt test.ml
➥ ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 171122 Oct. 30 13:30 a.out

➥ opam switch 4.02.1
➥ eval `opam config env`

➥ ocamlopt test.ml
➥ ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 171196 Oct. 30 14:08 a.out

可执行文件的大小越来越大:158569 → 171122 → 171196。

在更复杂的应用程序中,文件大小的增加更大。

任何想法如何解决?

更新 #1 :

试过 strip :
➥ strip -V | head -n 1
GNU strip (GNU Binutils for Ubuntu) 2.24

➥ ls -l
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 15:22 a.4.01.0.out
-rwxrwxr-x 1 shorrty shorrty 117368 Oct. 30 15:26 a.4.01.0.out.stripped
-rwxrwxr-x 1 shorrty shorrty 171122 Oct. 30 15:03 a.4.02.0.out
-rwxrwxr-x 1 shorrty shorrty 127580 Oct. 30 15:26 a.4.02.0.out.stripped
-rwxrwxr-x 1 shorrty shorrty 171196 Oct. 30 15:21 a.4.02.1.out
-rwxrwxr-x 1 shorrty shorrty 127612 Oct. 30 15:26 a.4.02.1.out.stripped
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 15:21 a.out

持续增长:117368 → 127580 → 127612

更新 #2 :

尝试过的选项 -compact ,没用:
➥ opam switch 4.01.0 && eval `opam config env`

➥ ocamlopt test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 22:02 a.out

➥ ocamlopt -compact test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 22:03 a.out

➥ opam switch 4.02.1 && eval `opam config env`

➥ ocamlopt test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 171196 Oct. 30 22:05 a.out

➥ ocamlopt -compact test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 171196 Oct. 30 22:05 a.out

尝试过的选项 -inline ,也没有用:
➥ opam switch 4.01.0 && eval `opam config env`

➥ ocamlopt -inline 0 test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 22:07 a.out

➥ ocamlopt -inline 1 test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 158569 Oct. 30 22:07 a.out

➥ opam switch 4.02.1 && eval `opam config env`

➥ ocamlopt -inline 0 test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 171196 Oct. 30 22:08 a.out

➥ ocamlopt -inline 1 test.ml && ls -l a.out
-rwxrwxr-x 1 shorrty shorrty 171196 Oct. 30 22:09 a.out

最佳答案

您的代码没有更改,但它调用了在 4.01 和 4.02 之间更改的 pervasives 模块。

值得注意的是,关于格式的部分已更改为使用基于 GADT 的格式而不是字符串。
这尤其使 to_string、of_string 和串联(相当)重。

this discussion更多细节。

关于size - ocaml 4.01.0 → 4.02.1,二进制大小变大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26652408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com