dsi*_*cha 6 time garbage-collection d timer
我希望通过添加一些启发式来改进D垃圾收集器,以避免垃圾收集运行,这不会导致显着的释放.我想补充的一种启发式方法是GC每X时间不应运行一次以上(可能每秒一次左右).为此,我需要一个具有以下属性的计时器:
它必须能够以最小的开销获取正确的时间.调用core.stdc.time
花费的时间大致相当于一个小的内存分配,因此它不是一个好的选择.
理想情况下,应该是跨平台(OS和CPU),以简化维护.
超高分辨率并不是非常重要.如果时间精确到1/4秒,这就足够了.
必须在多线程/多CPU环境中工作.x86 rdtsc
指令不起作用.
编辑:普通的旧C功能clock()
似乎足够快.但是,这里溢出是一个问题.在32位Windows和Linux上,clock_t
定义为32位有符号整数.当它溢出时,它是否变为负数,或者该clock()
函数是否使用额外的逻辑使其换算为零?如果它包装为零,那么这将成功.如果它包装为负数(也代表错误代码等),那么它将不起作用.
编辑#2:无论如何我尝试了启发式,使用clock()
和忽略溢出问题,就像测试一样.它的表现很差,不值得进一步调查.
归档时间: |
|
查看次数: |
920 次 |
最近记录: |