Articles of 计数器

如何获得CPU性能计数器的一段代码

众所周知, perf是获取程序CPU性能计数器的工具,比如cache-miss , cache-reference , instruction executed等。 问题:如何在c或c++中的一个程序中获取这些性能计数器的一小段代码(如函数)。 例如,我的程序首先做一些初始化,然后做这个工作,然后敲定,我只是想得到性能计数器的工作,如函数do_something_1 。 int main(int argc, char ** argv) { do_initialize(); for (int i = 0;i < 100 ;i ++) { /* begin profile code */ do_something_1(); /* end profile code */ do_something_2(); } do_finalize(); }

Jiffies Counter Over Flow案例+ Linux

Jiffies计数器返回一个大小为4字节的无符号整数。 当计数器达到最大值时,再次从0重新开始。 我会用旧值减去最新的值来获得持续时间。 那么我应该如何考虑这样的情况,即当旧的价值是最大的价值,新的价值大于零,这样我会得到错误的持续时间?

Windows批处理计数器跟随'0'

您好我正在一个小的batch file,使我的重命名文件在一个目录中,到目前为止,循环工作,但我想使我的计数器结果为0 : setlocal ENABLEDELAYEDEXPANSION SET /A counter=0 for %%A IN (*.txt) DO ( SET /A counter+=1 copy "%%A" "directory/%%A.!counter!.txt" ) 这个输出完全如下: tvscriptmonday.txt => TVscriptmonday.1.txt tvscripttuesday.txt => TVscripttuesday.2.txt 但我想作为输出: TVscriptmonday.01.txt TVscripttuesday.02.txt 我尝试使用IF命令: if !counter! <9 set counter=0!counter! 但不知何故,我无法得到它的工作,任何想法任何人?

PowerShell可以把计数器值放在系统托盘中吗?

我试图监视我的Wifi适配器的吞吐量数字在系统托盘上; 像这样。 我想出了静态Powershell查询 ((Get-Counter '\\mullick1\network interface(intel[r] centrino[r] advanced-n 6205)\bytes total/sec').countersamples).cookedvalue*8/102400000*100 但是,我怎样才能获得连续的饲料,我怎么把它放在系统托盘上? 我在Diskled软件中find了一个备用解决scheme。 但是并没有显示实际的价值。

Linux Bash autonumbering的文件名而不删除前导零

在Linux中,我希望在使用的格式中自动添加Oracle数据库表空间。 要做到这一点,我想做一个+1的增量与前一个文件相比。 数据文件通常以这种格式进行调用: /ora/oradata/tablespace_datafile.dbf /ora/oradata/tablespace_datafile_02.dbf /ora/oradata/tablespace_datafile_3.dbf 我能够提取$basefilename到一个variables与sed 's/[0-9].*// ,作为输出: /ora/oradata/tablespace_datafile_ 我也能够用sed s/[^0-9]//g将数字提取到应该是$counter的variables,这给出了上面例子的输出:分别是02和3 。 然而,我在添加+1到$counter遇到困难,而没有删除前导零( 02应该在下一个03 ,而是我得到3 ,我正在使用let counter++ 。 当前代码: basefilename=`echo $connectdb | sed 's/[0-9].*//'` counter=`echo $connectdb | sed 's/[^0-9]//g'` let counter++ nextdatafilename=$basefilename$counter'.dbf' 有什么build议么?

Linux替代Windows高分辨率性能计数器API

我正在寻找Windows高分辨率性能计数器API的Linux替代scheme,特别是以下API函数: QueryPerformanceFrequency QueryPerformanceCounter 谢谢。

在旧的linux内核上安装perf

我有Linux 2.6.18在我的服务器上运行,并希望使用'perf'子系统。 这个内核版本没有perf。 于是我下载了最新版本的linux 2.6.38并遍历到/ tools / perf /并安装了它。 从命令行我可以列出可用的性能计数器。 但是,当我尝试获得一个事件的function,它显示出来 “错误:open_counter返回38(function未执行)/ bin / dmesg可能提供额外的信息。 致命的:并不是所有的事件都可以打开。“ 旧的linux内核是否支持perf。 请build议我怎么才能让它运行给我的限制,我无法更新我的服务器上的内核版本。

perf-stat结果是否可以从perf.data文件生成?

当我想从Linux工具套件perf使用perf-stat和perf-report生成性能报告时,我运行: $ perf record -o my.perf.data myCmd $ perf report -i my.perf.data 和: $ perf stat myCmd 但这意味着我再次运行“myCmd”,这需要几分钟的时间。 相反,我希望: $ perf stat -i my.perf.data 但是与perf套件中的大多数工具不同,我没有看到perf-stat的-i选项。 有没有另外一个工具,或者一个方法来获得perf-report生成类似的输出到perf-stat?

我如何计算在红帽企业Linux(x86-64)上执行的指令?

我想知道在Red Hat Enterprise Linux上运行的程序运行期间,执行了多less个x86-64指令。 我知道我可以从valgrind得到这个信息,但是这个放缓是相当可观的。 我也知道我们使用的是内置硬件性能计数器的英特尔酷睿2四核CPU(型号Q6700),但是我不知道有什么方法可以访问在C程序中执行的指令总数。

wireshark从哪里得到它的微秒定时器

Wireshark时间事件下降到微秒,似乎很准确地做到这一点。 我的问题是,在Windows下运行的时间是从哪里来的呢? 如果答案是“这样使用和这样的图书馆”,那么我的问题是“那么,图书馆在哪里得到它的计时器”?