app端耗流量问题排查思路(ios端)

2017年3月31日
一.排查
1.流量基本单位概念
1024B = 1KB ,1024KB = 1MB ,1024MB = 1G
2.基本结论: 我们目前的app, 基本上是正常操作1次1M(1024k)左右,每天操作10次的话10M,一个月大概是300M左右。有优化空间。
3.目前只考虑出参,入参暂时不考虑。
二.大概主要有以下几个原因
1.页面切换后数据重新请求(最新版本2.0.3上已经优化部分)
比如患者首页,和公共平台
2.后台接口返回很多多余数据 (需要后台接口优化,计划部分在2.2.1上版本悠哈)
比如:推送课程界面左边的tab包
3.app更新下载安装最新包,目前是34.6M

app端耗流量问题排查思路(ios端)_第1张图片
Paste_Image.png

4.宣教课程和培训课程相关图片和视频资源
图片建议压缩后上传。
5.部分埋点数据也稍微站点流量 (暂时不好优化)
为了大数据统计方便,为了统计表A的字段b值,会把表A的所有字段传送给阿里云(大数据)
三.具体排查接口如下(比较常用耗流量的功能)
1:科室选择(每次点击都会重新请求) 15k/次


app端耗流量问题排查思路(ios端)_第2张图片
Paste_Image.png

2.患者列表请求 (2.0.3版本后已经优化,已经改成局部更新) 4个患者 大概1k次。 也就是说 40个患者就要 10K/次了

app端耗流量问题排查思路(ios端)_第3张图片
Paste_Image.png

3.患者详情 24k/次


app端耗流量问题排查思路(ios端)_第4张图片
Paste_Image.png

4.出院患者 67k/次

app端耗流量问题排查思路(ios端)_第5张图片
Paste_Image.png

5.推送课程界面 很有优化控件
(后台已经在优化)(app端有重复发了2遍请求也需要优化,预计在2.2.1版本上优化)
进去3个tab页面数据全部请求回来(可以优化)
主要接口如下
我的课程夹
左边:.../listFavrite
右边:.../listFavriteMapper
按照科室
左边:.../byDept (后台优化) 这个接口 252k/次
右边:.../byDeptDetail
按照类别
左边:.../byType (后台优化) 这个接口 294k/次
右边:.../byTypeDetail


app端耗流量问题排查思路(ios端)_第6张图片
Paste_Image.png

6.发现-我的医院-按科室 92k/次(注意还是没有图片的情况)


app端耗流量问题排查思路(ios端)_第7张图片
Paste_Image.png

用的是默认图片也有 38k/次
app端耗流量问题排查思路(ios端)_第8张图片
Paste_Image.png

三.排查原理 对回包json数据进行字节数打印
如何计算 一个json格式对象的回包数据大小?(用于分析app流量统计用)
1.实现原理 转成 NSData,获取 bytes

+ (void)printSizeWithObject:(id)object
{
    [HuConfigration printSizeWithObject:object withTag:@""];
}

+ (void)printSizeWithObject:(id)object withTag:(NSString*)tag
{
    if([object isKindOfClass:[NSDictionary class]])
    {
        NSDictionary *dic = (NSDictionary*)object;
        NSData *data = [NSJSONSerialization dataWithJSONObject:dic
                                                       options:0
                                                         error:nil];
        double length = [data length]/1024;//kb
//        NSLog(@"wy=json=%@",dic);
        if ([tag length] <= 0) {
            tag = @"wy";
        }
        NSLog(@"%@\nlength=%lfKb",tag,length);
        
        if (length > 1) {
            NSLog(@"");
        }
    }
}

2.使用效果
回包处添加即可

NSLog(@"wy-url=%@",url);
[manager POST:url parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {
     [HuConfigration printSizeWithObject:responseObject];
          //////
}

效果图如上面分析。

如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。

你可能感兴趣的:(app端耗流量问题排查思路(ios端))