由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
MobileDevelopment版 - 请教:属于google不到答案的问题 (转载)
相关主题
请教:属于google不到答案的问题 (转载)绿盘一个月load cycle count到了93677
问个OS里面spin lock的问题。自由炮第二个cycle还有2.5 G?
spin_lock_irqsave vs. disable irq vs. mask irqc++ stringstream: how to display hex 0 in 2 digits ?
如何优化这段C代码我发现我竟然学会了12种tree traversal的办法
请教:属于google不到答案的问题请问怎样写没有parent pointer的BST iterator?
How can one determine whether a singly linked list has a cycle?L家的高频题merge k sorted arrays giving iterators求讨论!
FG nyc 面经reverse an array
绿盘还真是恐怖狗子出价10B收购颓特被拒
相关话题的讨论汇总
话题: working话题: gap话题: 差异话题: cycles话题: 时延
进入MobileDevelopment版参与讨论
1 (共1页)
z*******n
发帖数: 1034
1
【 以下文字转载自 Programming 讨论区 】
发信人: xybl (xybl), 信区: Programming
标 题: 请教:属于google不到答案的问题
发信站: BBS 未名空间站 (Wed Apr 23 21:49:44 2014, 美东)
linux下的一段代码,single thread,可以独占一个cpu 100%的资源。最主要部分就是
这个loop
for (uint32_t i = 0; i < 10; i++)
{
working(pBuf, bufferNum);
gap(gapLoops);
}
working()会做一些有business 意义的操作,
gap()就是很简单的一个双循环去制造一些时延在两次working()之间。
如果gap()只运行很短的时间,例如34个cpu clock cycles,则working()在iteration
2~10次时用的时间很短,例如,1100个cycles
如果gap()只运行较长时间,两次working()之间的时延有1个second,则working()在
iteration 2~10次的运行时间会double甚至2.5倍,例如会达到2500个cycles
我已经用numactl和chrt让这个程序充分独占一个cpu core,而且用cpuset把其他
threads移开这个core上.
我的问题是:
是什么原因导致了这种差异?
有什么debug的手段/定量地检查这种原因造成的影响?
编辑:
我知道在某些real time kernel或者一些RTOS下,没有这种差异. 但对更大型的复杂程
序则仍然有这种差异. 由于不能理解其中的原因,所以无法调制. 所以我主要想理解为
什么,而不是怎样才能避免这个差异.
z*******n
发帖数: 1034
2
在smp上spinlock可以有两种实现,你差disabling interrupts

【在 z*******n 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 发信人: xybl (xybl), 信区: Programming
: 标 题: 请教:属于google不到答案的问题
: 发信站: BBS 未名空间站 (Wed Apr 23 21:49:44 2014, 美东)
: linux下的一段代码,single thread,可以独占一个cpu 100%的资源。最主要部分就是
: 这个loop
: for (uint32_t i = 0; i < 10; i++)
: {
: working(pBuf, bufferNum);
: gap(gapLoops);

1 (共1页)
进入MobileDevelopment版参与讨论
相关主题
狗子出价10B收购颓特被拒请教:属于google不到答案的问题
一个C++的概念问题How can one determine whether a singly linked list has a cycle?
发现一个有趣的事情,关于fortran IMSL libraryFG nyc 面经
编程这一行入门容易,所以小屁孩很多绿盘还真是恐怖
请教:属于google不到答案的问题 (转载)绿盘一个月load cycle count到了93677
问个OS里面spin lock的问题。自由炮第二个cycle还有2.5 G?
spin_lock_irqsave vs. disable irq vs. mask irqc++ stringstream: how to display hex 0 in 2 digits ?
如何优化这段C代码我发现我竟然学会了12种tree traversal的办法
相关话题的讨论汇总
话题: working话题: gap话题: 差异话题: cycles话题: 时延