gpt4 book ai didi

r - 为什么会出现 'Measured negative execution time!' 错误? (以及如何处理?)

转载 作者:行者123 更新时间:2023-12-04 19:07:29 28 4
gpt4 key购买 nike

我开始了解一些 microbenchmark R包的特点。我实现了来自 this 的示例代码Hadley Wickham 的出版并收到一个错误,我找不到任何准确的信息,也无法处理。预先感谢您的任何解释/提示等。

示例代码:

library(microbenchmark)

f <- function() NULL
microbenchmark(
NULL,
f()
)

控制台输出:
Error in microbenchmark(NULL, f()) : 
Measured negative execution time! Please investigate and/or contact the package author.

更新。 这是我的 seesionInfo()控制台输出:
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Polish_Poland.1250 LC_CTYPE=Polish_Poland.1250 LC_MONETARY=Polish_Poland.1250
[4] LC_NUMERIC=C LC_TIME=Polish_Poland.1250

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] ggplot2_0.9.3.1 microbenchmark_1.3-0

loaded via a namespace (and not attached):
[1] colorspace_1.2-4 dichromat_2.0-0 digest_0.6.3 grid_3.0.2 gtable_0.1.2 labeling_0.2
[7] MASS_7.3-29 munsell_0.4.2 plyr_1.8 proto_0.3-10 RColorBrewer_1.0-5 reshape2_1.2.2
[13] scales_0.2.3 stringr_0.6.2 tools_3.0.2

更新 2。该软件包的作者要求我提供一些进一步的信息:
  • R 变量 R.version

    R.version _
    platform x86_64-w64-mingw32
    arch x86_64
    os mingw32
    system x86_64, mingw32
    status
    major 3
    minor 0.2
    year 2013
    month 09
    day 25
    svn rev 63987
    language R
    version.string R version 3.0.2 (2013-09-25) nickname Frisbee Sailing

  • 我电脑中 CPU 的品牌、型号和速度:

  • 处理器:Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 3.70 GHz

    内存:16,0 GB

    系统类型:64位

    更新 3。

    我注意到上面代码的修改之一确实返回了正确的结果:
    > ### 1 
    > f <- function(){NULL}
    > microbenchmark(NULL, f())
    Error in microbenchmark(NULL, f()) :
    Measured negative execution time! Please investigate and/or contact the package author.
    >
    >
    > ### 2
    > f <- function(){ }
    > microbenchmark(NULL, f())
    Error in microbenchmark(NULL, f()) :
    Measured negative execution time! Please investigate and/or contact the package author.
    >
    >
    > ### 3
    > f <- function(){NULL}
    > microbenchmark(f())
    Unit: nanoseconds
    expr min lq median uq max neval
    f() 0 1 1 1 7245 100
    >
    > ### 4
    > f <- function(){ }
    > microbenchmark(f())
    Error in microbenchmark(f()) :
    Measured negative execution time! Please investigate and/or contact the package author.

    最佳答案

    根据您使用的操作系统,您的计算机上为高性能计时器子系统安装的驱动程序可能存在问题。

    在 Windows 领域,人们通过 QueryPerformanceCounter 访问 HPT。和 QueryPerformanceFrequency职能。 QPF 告诉您计数器滴答的频率,从而告诉您计数器的准确性; QPC/QPF 以秒为单位为您提供一个值,通常是计算机启动的时间。

    问题是驱动程序对这个 API 的支持有时参差不齐。 AMD 过去尤其遇到麻烦,我个人经历过这种情况。

    您可以尝试在线搜索 CPU 和/或主板的驱动程序,看看是否缺少驱动程序。这可能会解决这个问题。

    编辑:

    @MatthewLundberg 关于不同内核上的 rdtsc 指令有时会略有偏差。解决此问题的一种廉价方法是更改​​程序的 CPU 亲和性,使其仅在一个内核上运行。

    假设您使用的是 Win Vista 或更高版本,请进入任务管理器,右键单击正在运行您的代码的进程,选择“Affinity...”并将其限制为仅一个处理器(第一个 CPU 很好)。

    关于r - 为什么会出现 'Measured negative execution time!' 错误? (以及如何处理?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827305/

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