This article is for learning reference only, but method introduced has poor performance. Recommend using https://github.com/huakucha/TTAnalyzeLoadTime , this has better performance.
About two years ago just started performance optimization work, to Hook all +load methods, used Hopper to first list all +load, then used CaptainHook in dynamic library to specify class names one by one to Hook each +load method. Wrote an article, published to internal network (ATA) and blog, blog article address: https://everettjf.github.io/2017/01/06/a-method-of-hook-objective-c-load/ .
This method has two drawbacks:
Need to first statically analyze (using Hopper) to see all +load methods, or use objc runtime method to get all class names containing +load methods. Very troublesome.
For +load methods in Category, no way to Hook.
At the time also realized these two drawbacks, but due to time constraints it was sufficient.
Two years later, want to fulfill this wish. This article fixes these two drawbacks, implements: Hook all +load methods, including +load methods implemented in Category.
...
os_signpost API is a lightweight code performance analysis tool newly added in iOS12, can collect data and visualize. Official words are The os_signpost APIs let clients add lightweight instrumentation to code for collection and visualization by performance analysis tooling.
...
In startup optimization, try not to be on main thread if possible. Put in child thread and try not to intensively concurrency, one by one, give main thread more execution opportunities. Then one method is to use thread pool.
...
After developing VSCode Extension https://github.com/everettjf/vscode-filter-line , saved a lot of time I always need to look at logs to troubleshoot problems, also want to share for everyone to use. But everyone has their own habits and favorite editors. So, should I develop a SublimeText extension? Vim extension? Atom extension? Thought and thought, simply make it command line version.
...
For English article , please visit here
Background
Daily work troubleshooting problems inevitably involves looking at client logs. After logs are collected, need to carefully look at key information in logs with wide eyes, some problems can’t be determined by a single log line, need to find clues from multiple log lines.
...
Been working on App launch performance, also read many articles about “optimizing App launch performance”. This article summarizes articles read, plus some own understanding, nothing new. Work recently also encountered some difficulties and bottlenecks, summarize here and organize thoughts.
Planned to have five short articles:
iOS App Launch Performance Optimization (1) - premain
iOS App Launch Performance Optimization (2) - main
iOS App Launch Performance Optimization (3) - Tools
iOS App Launch Performance Optimization (4) - Principles
iOS App Launch Performance Optimization (5) - Summary
Articles are all very short, this is the first article, don’t have high expectations
...
Haven’t reverse engineered Apps for a long time, recently have some needs to see how other Apps implement things, want to review. Also these two years several commonly used tools have changed, some new tools emerged. This article summarizes basic App reverse engineering methods, tools and some books. Will try to update this article when there are new discoveries.
...