缺页中断优化

233 阅读1分钟

#原理

#监控

Instruments - System Trace - 启动检测 - 停止

1、Thread:Main Thread

2、选择对应Demo的Main Thread

3、点击Narrative - Summary:Virtual Memory

-File Backed Page In:page fault

优化:

Target -> Build Setting -> Custom Complier Flags -> Other C Flags:

    -fsanitize-coverage=func,trace-pc-guard

 Target -> Build Setting -> Custom Complier Flags -> Other Swift Flags:

    -sanitize-coverage=func

    -sanitize=undefined

`#ifdef DEBUG

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        [CallOrderTool performSelector: @selector(dumpSymbols) withObject:nil afterDelay:1];

    });

#endif`

Target -> Build Setting -> Linking -> Order File - order file路径

Target -> Build Setting -> Linking -> Write Link Map File 设置为 YES

Target -> Build Setting -> Linking ->  Path to Link Map File:

~/Developer/Xcode/DerivedData/项目/Build/Intermediates.noindex/项目.build/Debug-iphonesimulator/项目.build/项目-LinkMap-normal-x86_64.txt

Symbols 部分

Address:方法代码的地址

Size:方法占用的空间 文件里面的方法符号

Symbols 部分的 File 顺序是和 Target -> Build Phase -> Compile Sources 的文件顺序一致的。

缺页中断优化:juejin.cn/post/684490…