无标题文章

二叉搜索树  反转二叉树


41.性能优化

1.合理的线程分配,过多线程创建会导致消耗过多

DB操作、日志记录、网络回调都在各自的固定线程

2.预处理和延时加载

对于一些需要耗费大量线程时间的操作,并且需要及时地显示在用户面前,提前放到后台线程进行计算

UITableView就是最典型的例子(对于可视区域外的cell适当地进行延迟加载)

3.缓存

cache线程安全问题,防止一边修改一边遍历的crash。

cache的根据需要建立缓存释放机制,防止缓存数据过大。

4.使用正确的API

了解imageNamed:与imageWithContentsOfFile:的差异(imageNamed:适用于会重复加载的小图片,因为系统会自动缓存加载的图片,imageWithContentsOfFile:仅加载图片)

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"apple"ofType:@"png"];

UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];

缓存NSDateFormatter的结果,过多地创建会影响影响性能(使用当前线程字典来保存对象,时间格式作为键值)

5.数据库优化

主要是合适地建立索引,提高查找效率,防止全表扫描。





TableViewCell \ 页面优化:


TCP三次握手:




automaticallyAdjustsScrollViewInsets


nsurlcache 网络访问缓存 refresh Time Profiler  object_setIvar   

你可能感兴趣的:(无标题文章)