在我的应用程序中,用户可以通过在屏幕上以他们设置的速度闪烁单词来“快速读取”文本。我已使用重复的UIViewController
在我的NSTimer
中对此功能进行了编码,并通过显示下一个单词索引来更新UILabel
,但它的速度并没有达到应有的速度。
例如,我用每分钟1000字的100字测试它。而不是像它应该花费6秒,完成闪烁所有单词需要6.542045。这是一个很大的问题,因为我应该向用户用户吐出他们阅读文本所需的时间。
如何找出代码的哪些部分需要这么长时间?是UILabel
的更新正在吃掉0.54 ~~的时间吗?
修改
我可以在此处查看我的示例项目:https://github.com/cnowak7/RSVPTesting
我拥有的flashText
方法应该只触发100次。好吧,101如果我们计算方法实现的时间,则不再有单词并终止NSTimer
。在控制台中,在阅读结束时,我可以看到该方法被触发了111次。我想我可能会以错误的方式做这件事。
答案 0 :(得分:2)
您的具体问题似乎是:How do I find out what part of the code is taking so long? Is it the updating of the UILabel that's eating up 0.54~~ of the time?
Inside Instruments,随Xcode提供,是Time Profiler工具。 https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Instrument-TimeProfiler.html
您可以运行代码并观察此工具,以确切了解执行例程的每个部分所花费的时间。它将按照总时间和具体时间跨度的百分比准确分解哪种方法花费的时间最多,让您准确了解应该通过重构/优化来集中精力削减那些宝贵的部分秒数。
我是一个Objective-C家伙,所以不要试图通过一个Swift示例混淆我,我会让这个人说话。 https://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started
答案 1 :(得分:1)
每当您想知道iOS中的时间消耗时,您应该始终选择Instruments并选择时间分析器,如图所示。
时间分析器将帮助您获得花费太多时间的代码。