1

这是一个非常古老的 octave 安装,3.05,但它是 centos-5 的标准配置,在许多生产环境中仍然存在。当我 strace octave 时,我看到它不断地在同一个文件上调用 stat 。它必须花费一半的时间来说明相同的文件。这是一个示例:

stat("/usr/local/share/octave/3.0.5/m/path", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/local/share/octave/3.0.5/m/plot", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/local/share/octave/3.0.5/m/pkg", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/local/share/octave/3.0.5/m/sparse", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/local/share/octave/3.0.5/m/control", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/local/share/octave/3.0.5/m/control/obsolete", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/local/share/octave/3.0.5/m/control/hinf", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

这并没有真正给出完整的味道,因为它一遍又一遍地更多和相同的。它发生在突发事件中。为什么要这样做,我怎样才能让它停止?或者至少让它做一次而不是经常做。

4

1 回答 1

2

我想到了!Octave 正在统计文件以检查修改时间戳,以查看自上次统计它们以来它们是否已更改。这可以被禁用并且应该提高性能,无论八度音阶版本如何。

来自http://www.gnu.org/software/octave/doc/interpreter/Function-Files.html

如果您知道在运行 Octave 时您自己的函数文件不会更改,您可以通过调用 来提高性能ignore_function_time_stamp ("all"),这样 Octave 将忽略所有函数文件的时间戳。将“system”传递给此函数会重置默认行为。

于 2012-12-20T16:34:20.837 回答