我注意到我运行的代码的10%是系统空间。但是,我不知道哪个系统调用。但我怀疑,要么是要做文件,要么是时间戳。
是否有工具可以确定哪些系统调用是罪魁祸首?另外,我想知道调用(和被调用者)的频率(和位置)。
我在AS3
THX
答案 0 :(得分:6)
strace
和truss
都可以帮助您查看哪些系统调用需要时间。 strace
的两个有用选项是:
答案 1 :(得分:3)
如果你在Linux上看看strace。
如果您使用的是其他Unix,请查看truss是否可用。
答案 2 :(得分:1)
如果你的系统有它,那么 truss 命令应该做你想要的。
答案 3 :(得分:1)
如果为10%,则为{30}个样本try this method。您将看到~3个样本的准确调用,可能是2个,也许是4个。
答案 4 :(得分:0)
再次在Linux上,您可以尝试 oprofile 分析器。确保您有可用于libc和内核的调试符号(许多发行版在不同的包上都有这些符号)。它描述整个系统,而不是(仅)单个过程。我从中获得了有价值的信息。
答案 5 :(得分:0)
在Solaris上,您可以使用dtrace。