小编giZ*_*Zm0的帖子

为什么clock_gettime如此不稳定?

介绍

  • 章节旧问题包含初始问题(此后已添加进一步调查结论).

  • 跳到部分进一步调查下面的不同的定时的方法(详细比较rdtsc,clock_gettimeQueryThreadCycleTime).

  • 我相信CGT的不稳定行为可归因于有缺陷的内核或有缺陷的CPU(参见结论部分).

  • 用于测试的代码位于此问题的底部(请参阅附录部分).

  • 道歉的长度.


老问题

简而言之:我clock_gettime用来衡量许多代码段的执行时间.我在单独的运行之间经历了非常不一致的测量.与其他方法相比,该方法具有极高的标准偏差(参见下面的说明).

问题:clock_gettime与其他方法相比,有没有理由给出如此不一致的测量结果?是否有一种替代方法具有相同的分辨率来解决线程空闲时间?

说明:我正在尝试分析C代码的一些小部分.每个代码段的执行时间不超过几微秒.在单次运行中,每个代码段将执行数百次,从而产生runs × hundreds测量值.

我还必须只测量线程实际执行的时间(这就是为什么rdtsc不适合).我还需要一个高分辨率(这就是为什么times不适合).

我尝试了以下方法:

  • rdtsc (在Linux和Windows上),

  • clock_gettime (在Linux上使用'CLOCK_THREAD_CPUTIME_ID';)和

  • QueryThreadCycleTime (在Windows上).

方法:分析在25次运行中进行.在每次运行中,单独的代码段重复101次.因此我有2525次测量.然后我查看测量的直方图,并计算一些基本的东西(如平均值,std.dev.,中位数,模式,最小值和最大值).

我没有介绍我如何测量三种方法的"相似性",但这仅仅涉及对每个代码段花费的时间比例的基本比较("比例"意味着时间被标准化).然后我看看这些比例的纯粹差异.这种比较表明,在25次运行中平均所有'rdtsc','QTCT'和'CGT'的比例相同.但是,下面的结果表明'CGT'具有非常大的标准偏差.这使得它在我的用例中无法使用.

结果:

的比较clock_gettimerdtsc对于相同的代码段(101个测量= 2525个读数25次运行):

  • clock_gettime:

    • 1881测量11 ns,
    • 595次测量(几乎正常分布)在3369和3414 ns之间,
    • 2次测量11680 ns,
    • 1测量1506022 ns,和
    • 其余的在900到5000 ns之间.

    • 最小值:11 ns

    • 最大值:1506022 ns
    • 平均值:1471.862 ns …

linux time profiling

34
推荐指数
1
解决办法
1万
查看次数

关于django-tables2的链接列

我使用django-tables2来显示页面中的一些数据,现在我想将单元格链接到某个URL,但链接URL如下:

url(r'^(?P\w +)/(?P\d +)/ $','pool.views.pooldatestock',name ="pool_date_stock"),

我读了django-tables2的文件,但我找不到关于这个问题的一些例子.

表格在页面的网址中显示如下:http://127.0.0.1:8000/pool/20111222 /

我试着在tables.py中写这个:

class PoolTable(tables.Table):
    number = tables.LinkColumn('pool.views.pooldatestock', args=[A('number')])
    date = tables.Column()
Run Code Online (Sandbox Code Playgroud)

然后我试着写:

class PoolTable(tables.Table):
    number=tables.LinkColumn('pool.views.pooldatestock',
                             args=[A('date')],
                             kwargs=A('number')])
    date = tables.Column()
Run Code Online (Sandbox Code Playgroud)

但它也是错误的......

有人可以告诉我如何解决这个问题吗?或者我应该创建自己的表视图,而不是django-tables.

谢谢.圣诞快乐:)

django django-tables2

7
推荐指数
1
解决办法
3946
查看次数

与Android设备的Windows MTP/WPD通信

我正在开发一个在Windows上运行的PC c ++应用程序.应用程序应使用MTP与通过USB连接的Android手机通信.该idée是不安装存储卡.我发现Windows有一些他们称之为支持MTP的WPD(Windows便携设备).它看起来还不错,但它要求安装WMP11.我想知道的是:

  • 您可以使用其他任何替代库吗?
  • 有没有人对使用WPD有任何提示或经验?
  • 是否有任何"更精简"的依赖项可以安装而不是WMP11 for xp?

任何帮助将不胜感激.

c++ windows usb wpd

6
推荐指数
1
解决办法
7036
查看次数

如何在安装之前验证升级

我们有一个许可的eclipse功能,许可证由我们自己的代码处理.用户可以进入我们的更新站点并升级其功能.我们面临的问题是在用户的许可证需要使用新升级之前需要更新.

我想要做的是根据用户许可证验证功能版本,并警告用户在安装之前需要更新其许可证.

我以为我会使用自定义eclipse p2 touchPoint动作validateLicense来做到这一点.

例:

调用我的代码,我根据用户的许可证验证版本.如果失败,我会警告用户,然后他可以取消安装.

所以我的第一个问题是:

  • 我能做到这一点,还是以其他方式做到这一点?

我的第二个问题非常基本:

  • 我在哪里告诉eclipse运行我的代码?我在这里看了一下eclipse的帮助,他们解释了它是什么.但我不明白将信息放在哪里运行我的代码?它在feature.xml中.

最后:

  • 有一个例子如何创建和使用p2 touchPonts?

eclipse eclipse-plugin p2 eclipse-rcp

5
推荐指数
1
解决办法
157
查看次数

django-tables2没有排序

无法为django-tables2表进行排序工作.

class MyModel(models.Model):
    pid = models.AutoField('id',primary_key = True)
    name = models.CharField(max_length = 255,
                            help_text='The name')
def show_mymodels(request):
    """ the view """
    table = MyModelTable(MyModel.objects.all())
    return render(request,'mymodel.html',{'table':table})

class MyModelTable(tables.Table):
    class Meta:
        model = MyModel
        orderable = True
Run Code Online (Sandbox Code Playgroud)

而mymodel.html看起来如下:

{% load render_table from django_tables2 %}
{% render_table table %}
Run Code Online (Sandbox Code Playgroud)

这会使表格正确,但在浏览器中单击列时没有任何反应.其他然后urld改变http://127.0.0.1:8000/show_mymodel- >http://127.0.0.1:8000/show_mymodel?sort=name

我做错了什么?

python python-2.7 django-tables2

4
推荐指数
1
解决办法
3531
查看次数

android ant -pre-compile vs -pre-build

我正在开发一个android项目,我们用ant构建我们的版本.我们-pre-compile在更改versionName代码中的其他标志时使用Android-ant目标.-pre-build你还可以使用一个android-ant目标.

有谁知道这两个目标之间的区别?

ant android build

3
推荐指数
1
解决办法
3274
查看次数

如何贡献动作与eclipse中的菜单进行比较

我正在尝试为eclipse中的Compare With菜单贡献一个动作,但我找不到用于我的动作的id menuPath.

  1. 与菜单比较的id是多少?
  2. 如果要为菜单项提供操作,如何找到其他ID?

java eclipse-plugin eclipse-rcp

2
推荐指数
1
解决办法
202
查看次数

认识到Intent的发送地点

我使用条形码扫描仪扫描一些代码.为此,我在条形码扫描仪中调用了扫描操作的意图.

问题是我想在我的主要活动中从2种不同的方法发送它以用于不同的目的(不同的代码类型扫描).由于我只有一个答案,onActivityResult()我如何区分Intent呼叫的开始位置?

我可以使用一些旗帜或标签或任何东西吗?

android android-intent

1
推荐指数
1
解决办法
281
查看次数

如何在迭代for循环中使用srand(time | $$)时避免重复?

我在for循环中迭代perl脚本并srand(time¦$$)在我的脚本中使用随机数来播种.

在我的输出中,当我得到单独的结果时,我会得到重复的结果,如果我一次只做一个,而不是使用for循环.这是因为这srand条线吗?有什么建议?

谢谢!

perl for-loop srand

1
推荐指数
1
解决办法
1318
查看次数