iOS模拟器中的Nanosleep(在带有XCode 8.1和8.2beta的MacOS Sierra上运行)的睡眠时间比所需的持续时间长5倍。
这不会发生在真正的iPhone 7设备或macOS Sierra应用程序中,只会出现在模拟器中。
是否可以在模拟器中拥有更准确的睡眠持续时间,还是一个错误?
var cy1 = cytoscape({
container: document.getElementById('cy'),
elements: {
nodes: countriesJSON
},
style: [
{
selector: 'node',
style: {
'background-color': '#666',
'label': 'data(id)'
}
},
{
selector: 'edge',
style: {
'width': 1,
'line-color': '#aaa',
}
}
]
});
cy1.layout({
name: 'circle'
});
输出:
Sleep = 84.451425 msec Sleep = 69.947846 msec Sleep = 95.484521 msec Sleep = 72.795438 msec Sleep = 80.162972 msec Sleep = 70.265713 msec ...
答案 0 :(得分:1)
系统调用保证您将在请求的持续时间之后的某个时间点安排。你不应该在很快之后做出任何假设。
话虽如此,在Sierra上运行的Xcode 8.0-8.2存在一个问题,导致模拟器进程的调度优先级低于预期。这可能是您在设备和SIM卡之间看到这种行为差异的原因。