通过反编译排查堆栈偏移过大的 Crash
上报数据量过大导致的 Crash
ReactNative升级至0.50.3
ReactNative自定义地址调试
ReactNative ScrollView 及 WebView 上下拖动切换
NodeJS编写命令行脚本
NSURLSession错误使用引起的网络阻塞问题
前言
最近一段时间公司的 APP 在某个时间段比较多人访问时,经常出现连接不上服务器的情况,刚开始我们一直都以为是服务器问题,运维同事做了一些措施还是不能解决。
后来在使用 Charles
抓包时,看到每次的接口请求,Keep-Alive
都是不生效的。
猜测是因为这里导致用户发起的每个请求,都要重新进行 DNS 解析、建立 SSL 握手等操作(尤其我们首页每次刷新还都会同时发起好几个请求…)。
而我们 DNS 用的貌似是第三方的服务,所以问题比较大可能是出在跟我们服务器的握手阶段(为了方便定位是什么问题,我在一个版本中,加入了错误码的提示,发现很多是超时、握手失败等情况)。
当很多人同时访问时,由于前面有大量握手(我们用的是 HTTPS,报文会比 HTTP 多一些)没建立成功,服务器还在忙着处理,后面的请求就处理不过来了,所以就阻塞了。
那应该如何解决呢?
iOS 自动释放池原理探究
前言
这篇文章主要通过苹果开源的 NSObject.mm(注:写这文章时的日期是 2017.3.12,使用的版本是objc4-706
,可能与以前的版本会稍有不同) 来对 @autoreleasepool
进行说明。