我正在开发的SceneKit应用程序遇到相当奇怪的行为。我调用一种方法来操纵各种function testArray() {
var ss = SpreadsheetApp.getActive();
var arr = ss.getSheets();
arr.splice(0,10); //removes first 10 Sheets from Array;
var exclude = []; //fill with unchangeable names;
arr.forEach(function (sheet,index) { //iterates over Array of Sheets;
var oldName = sheet.getName();
var newName = sheet.getRange(1,1).getValue();
if(newName.toString().length>0 && newName!==oldName) {
//Move to next iteration if new name should be excluded;
if(exclude.indexOf(newName)===-1) {
sheet.setName(newName); //set name otherwise;
}
}
}); // end of loop
} // end of function
对象的set.seed(1)
trn_index = createDataPartition(y = low_birth_weight$id, p = 0.70, list = FALSE)
trn_low_bw = low_birth_weight[trn_index, ]
tst_low_bw = low_birth_weight[-trn_index, ]
low_bw_knn = train(low ~ ., method = "knn", data = trn_low_bw,
trControl = trainControl(method = 'cv', number = 5))
属性。该方法在循环中更改simdWorldPosition
,可以执行约40k次。
我定义了一个SCNNode
:
simdWorldPosition
按下按钮会调用以下内容:
DispatchQueue
let updateQueue = DispatchQueue(label: Bundle.main.bundleIdentifier! +
".serialSceneKitQueue")
这些迭代很慢-我有时可以看到在几秒钟内发生了约一千次操作,然后花一分钟时间进行50次@objc func didPressGreedy() {
updateQueue.async {
let _ = self.Greedy()
}
}
更新。如果点击屏幕,我可以看到执行速度加快了。
当我使用iOS App Switcher(只需在iPhone XS上滑动应用程序并将其放置在App Switcher中)时,该应用程序将迭代的执行速度显着提高了10倍。
为什么会导致这种情况?如果我遇到概念性问题,请指向相关主题/文章。
答案 0 :(得分:1)
为什么会导致这种情况?
听起来好像您的应用程序在切换器中要做的工作要少得多。这不足为奇……应用程序绘制的区域要小得多,没有触摸事件要处理,等等。区别可能与循环中的代码无关相比之下,该应用程序的其余部分做得并不多。
如果您真的想知道发生了什么(或没有发生什么),最好的办法是使用Instruments来分析代码。