是否可以获得GCC编译的每个函数的最大帧大小?我的项目中有一堆C和C++源文件,我希望得到每个函数的堆栈使用情况统计信息,但在GCC手册中找不到任何相关选项.
提前致谢 :-)
我试图为以下复制文件的原始 Haskell 代码生成堆内存配置文件:
import System.Environment
import System.IO
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as LB
naiveCopy :: String -> String -> IO ()
naiveCopy from to = do
putStrLn $ "From: " ++ from
putStrLn $ "To: " ++ to
s <- B.readFile from
B.writeFile to s
main = do
args <- getArgs
mapM (\ x-> putStrLn x) args
naiveCopy (head args) ((head.tail) args)
Run Code Online (Sandbox Code Playgroud)
使用 ghc 8.0.1 构建代码的命令:
ghc -o t -rtsopts -prof -fprof-auto t.hs
Run Code Online (Sandbox Code Playgroud)
收集分析数据的命令:
./t +RTS …
Run Code Online (Sandbox Code Playgroud)