问题标签 [time-measurement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python速度测试 - 时差 - 毫秒
为了加速测试一段代码,在 Python 中比较 2 次的正确方法是什么?我尝试阅读 API 文档。我不确定我是否理解 timedelta 的事情。
到目前为止,我有这个代码:
c - 如何测量 ARM Cortex-A8 处理器中的程序执行时间?
我正在使用一个名为 i.MX515 的基于 ARM Cortex-A8 的处理器。有 linux Ubuntu 9.10 发行版。我正在运行一个用 C 编写的非常大的应用程序,并且我正在使用gettimeofday();
函数来测量我的应用程序所花费的时间。
这种方法足以查看我的应用程序的哪些块花费了多少时间。但是,现在,我正在尝试非常彻底地优化我的代码,使用 gettimeofday() 计算时间的方法,我看到连续运行之间有很多波动(在我的优化之前和之后运行),所以我不能确定实际的执行时间,从而影响我的改进。
谁能建议我该怎么做?
如果通过访问循环计数器(在 ARM 网站上为 Cortex-M3 建议的想法),任何人都可以指出一些代码,这些代码为我提供了访问Cortex-A8 上的定时器寄存器所必须遵循的步骤?
如果这种方法不是很准确,那么请提出一些替代方案。
谢谢
跟进
跟进1:在Code Sorcery上编写了以下程序,生成了可执行文件,当我尝试在板上运行时,我得到-非法指令消息:(
跟进2:我已经写信给飞思卡尔寻求支持,他们给我回了以下回复和一个程序(我不太明白)
以下是我们现在可以为您提供的帮助:我正在向您发送附加的代码示例,该示例使用 UART 发送流,从您的代码来看,您似乎没有正确初始化 MPU。
silverlight - 添加到声音的延迟
我将在 Silverlight 中编写一个包含 2 个线程的应用程序,一个用于播放声音,另一个用于录制声音。录制的内容将是播放的内容以及一些环境噪音。
问题是 Silverlight 给要播放的声音添加了延迟,因为我不知道这个延迟是多少,所以我无法准确知道录制某些内容时播放的是什么。
你知道我在哪里可以找到关于这个延迟的更多信息(它是多少,它是恒定的,如果我重新启动我的应用程序或计算机会改变,在不同的计算机上它是否相同,......),或者怎么可能我测量它的精度为 1 毫秒?
linux - ubuntu linux中的逻辑时间与物理时间
我正在测量两个事件之间的物理时间,如下所示:
但是现在,我需要一种方法来测量线程实际使用的逻辑时间。也就是说,理论上应该是物理时间,减去运行其他线程和/或系统和内核逻辑所花费的时间。
我认为这是这样做的方法:
但是做了一些测量,我发现了两个问题:
1)对于某些测量,它大于物理时间,这是不对的(即:对于某些循环,物理时间将为 0.2495 .. 并且“逻辑”(使用 clock() 测量)将为 0.27,对于较小的测量它会只是四舍五入到零,这导致了第二个问题......)
2) 结果时间似乎比 gettimeofday 返回的时间粗多了
有没有更好的方法来测量 linux 中的本地线程时间?
java - 在 Java 中以微秒为单位测量时间的最有效、“便宜”和准确的方法是什么?
我正在使用 ASM java 字节码检测,我的目标是测量每次访问变量的时间。
** 测量时间和日志 **
** 变量访问 **
我正在寻找微秒级的分辨率。它应该是准确的,因此足够“便宜”(这意味着我不想要一个需要 10 毫秒才能获得时间的函数或库)。
我已经尝试过System.NanoTime()
(太多,成本太高)和Calendar
(太松散),但我正在寻找更好的选择。
c# - c# 用 Thread.Sleep 锁定不工作
我有以下代码。在 windows server 2008 中,该程序是正确的并且可以按预期运行。它输出 10 个不同的 id。
但是,当我在 windows server 2003 中运行它时,程序不正确。它输出 10 个 id,但其中一些 id 是重复的。看来锁不工作了。
如果我设置Thread.Sleep(500)
,它可以在 windows server 2003 上正常工作。
c++ - 如何衡量一段代码执行的时间?
假设我想测量一段代码所花费的时间。为此,我通常会做这样的事情
如果程序是多线程的并且上下文切换发生在我要测量的部分中怎么办?我将如何测量我的代码执行所需的时间,不包括在其他线程上花费的时间?即使有工具可以做到这一点,我也非常想知道他们是如何做到的。
linux - 如何在 *nix 中计算没有共享库的进程内存?
我有简单的程序,例如 C++
我正在尝试用 GNU 时间计算内存使用量。但是在“时间”输出中(使用我的格式,没关系)内存中进程的最大大小是用 libc.so 计算的,它具有 printf 函数(调用 std::cout)并且等于 3.5 Mb。
有没有办法在不加载共享库的情况下计算进程内存?
UPD我不能在处理我想要测量的内存运行时执行它,原因有几个。我在问是否有办法使用外包装工具(就像time
是)
c# - 测量多线程环境中的执行时间
我有一个使用Task
(TPL)对象进行异步执行的应用程序。
主线程等待触发(一些 TCP 数据包),然后执行几个任务。我想做的是衡量在任务中花费的时间。
看一下代码。我有一些冗长的操作(Generator
),包含在Stopwatch's
开始/停止中。
这是问题所在。秒表DateTime.UtcNow.Ticks
在 的时刻使用Start()
,然后在 的时刻再次使用Stop()
。然后它减去这两个以获得经过的时间。
问题是,其他一些线程(在单线程系统中)可以获得一些处理器时间,而Generator
(来自代码)正在执行其GenerateIntervals()
冗长的操作。这意味着秒表记录的经过时间不仅包含Generaor.GenerateIntervals()
时间,还包含其他线程在其间完成工作的时间。
是否有任何简单的方法可以准确地知道某些方法占用了多少处理器时间,不包括由于分时机制而导致的其他线程的执行时间?
c - 使用硬件计数器测量 ARM Cortex-A8 上的执行时间
我正在使用 Exynos 3110 处理器(1 GHz 单核 ARM Cortex-A8,例如用于 Nexus S)并尝试测量特定功能的执行时间。我在 Nexus S 上运行了 Android 4.0.3。我尝试了以下方法
[1]如何测量 ARM Cortex-A8 处理器中的程序执行时间?
我加载了内核模块以允许在用户模式下读取寄存器值。我正在使用以下程序来测试计数器:
根据[1],计数器随着每个时钟周期递增。我将 scaling_governor 切换到用户空间并将 CPU 频率设置为 1GHz,以确保 Android 不会更改时钟频率。
如果我运行程序,则会执行 1 秒的睡眠,但计数器值在 ~200e6 的范围内,而不是预期的 1e9。我在这里缺少任何特定于处理器的东西吗?计数器的时钟频率是否与处理器的时钟频率不同?