gpt4 book ai didi

profiling - 使用分析信息编译的 OCaml 二进制文件

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

给定一个使用 OCaml 编译的二进制文件,有没有办法找出它是否已使用分析信息编译(使用 ocamlcp/ocamloptp 或使用 gprof 特定数据通过 ocamlopt -p )?

最佳答案

如果你运行 ocamlobjinfo在已分析的字节码文件上,它显示 Profiling 作为导入的接口(interface)之一:

$ ocamlcp -c my.ml
$ ocamlobjinfo my.cmo
File my.cmo
Unit name: My
Interfaces imported:
720848e0b508273805ef38d884a57618 Array
d7e1aaf95ba3578d33efe347aefa6c49 My
db723a1798b122e08919a2bfed062514 Pervasives
6a6248bae49664a0bb530dd3f0c15b79 Profiling
Uses unsafe features: no
$

更新

在我的系统 (OS X) 上,经过分析的 native 可执行文件包含 camlProfiling 的定义及相关符号:
$ ocamlopt -o my my.ml
$ nm my | grep camlProfiling
$ ocamloptp -o my my.ml
$ nm my | grep camlProfiling
000000010003e240 D _camlProfiling
000000010003e2e0 d _camlProfiling__1
000000010003e300 d _camlProfiling__2
000000010003e318 d _camlProfiling__3
000000010003e268 d _camlProfiling__4
000000010003e280 d _camlProfiling__5
000000010003e2a0 d _camlProfiling__6
000000010003e2c0 d _camlProfiling__7
0000000100003760 T _camlProfiling__code_begin
0000000100003ac7 T _camlProfiling__code_end
000000010003e238 D _camlProfiling__data_begin
000000010003e328 D _camlProfiling__data_end
00000001000038d0 T _camlProfiling__dump_counters_1014
0000000100003a40 T _camlProfiling__entry
000000010003e32c D _camlProfiling__frametable
0000000100003770 T _camlProfiling__fun_1046
0000000100003800 T _camlProfiling__fun_1048
0000000100003890 T _camlProfiling__incr_1010

这似乎很可能适用于所有支持 nm 的系统。 .

关于profiling - 使用分析信息编译的 OCaml 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11871195/

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