iOS 使用Instruments工具Time Profiler進(jìn)行性能優(yōu)化

??在項(xiàng)目運(yùn)行時(shí)有時(shí)候會(huì)出現(xiàn)卡頓感,例如tableView滑動(dòng)出現(xiàn)卡頓,這個(gè)時(shí)候就需要追蹤卡頓的來源,這個(gè)時(shí)候就用到Instruments中的Time Profiler來進(jìn)行性能優(yōu)化。

  1. 先預(yù)編譯項(xiàng)目(command+i),然后在彈出來的Instruments工具中選擇Time Profiler

    Instruments面板

  2. 點(diǎn)擊開始運(yùn)行項(xiàng)目,為了測(cè)試這個(gè)性能我故意在cell里面添加了阻塞性能代碼

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellID = @"cellID";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"測(cè)試數(shù)據(jù)%ld",indexPath.row];
    for (int i = 0; i < 1000; i++) {
        [cell addSubview:[UILabel new]];
    }
    return cell;
}
  1. 然后在運(yùn)行的項(xiàng)目中滑動(dòng)tableView會(huì)發(fā)現(xiàn)出現(xiàn)嚴(yán)重的卡頓感

    Time Profiler

  2. 會(huì)發(fā)現(xiàn)CPU此刻處于暴增狀態(tài),接近占用100%,所以這個(gè)時(shí)候就需要找出造成CPU消耗這么大的問題所以,在下面的面板中選中Call Tree中的Separate by ThreadHide System Libraries

    Time Profiler配置

  3. 接下來在線程中找到問題代碼,然后雙擊定位到代碼的位置


    找到問題代碼
問題代碼位置

注意

如果time profiler中看不到方法名只能看到十六進(jìn)制地址的解決辦法
1、設(shè)置profilerdebug模式
首先打開Edit Scheme

打開Edit Scheme

設(shè)置profilerdebug
設(shè)置profiler

2、設(shè)置Debug Information Format中對(duì)應(yīng)的Debug下為DWARF with dSYM File。和查看crash log文件一樣需要使用dSYM文件來解析方法名稱,沒有這個(gè)的話只能顯示十六進(jìn)制的地址。

Debug Information Format

Demo下載

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容