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
4.宣教课程和培训课程相关图片和视频资源
图片建议压缩后上传。
5.部分埋点数据也稍微站点流量 (暂时不好优化)
为了大数据统计方便,为了统计表A的字段b值,会把表A的所有字段传送给阿里云(大数据)
三.具体排查接口如下(比较常用耗流量的功能)
1:科室选择(每次点击都会重新请求) 15k/次
2.患者列表请求 (2.0.3版本后已经优化,已经改成局部更新) 4个患者 大概1k次。 也就是说 40个患者就要 10K/次了
3.患者详情 24k/次
4.出院患者 67k/次
5.推送课程界面 很有优化控件
(后台已经在优化)(app端有重复发了2遍请求也需要优化,预计在2.2.1版本上优化)
进去3个tab页面数据全部请求回来(可以优化)
主要接口如下
我的课程夹
左边:.../listFavrite
右边:.../listFavriteMapper
按照科室
左边:.../byDept (后台优化) 这个接口 252k/次
右边:.../byDeptDetail
按照类别
左边:.../byType (后台优化) 这个接口 294k/次
右边:.../byTypeDetail
6.发现-我的医院-按科室 92k/次(注意还是没有图片的情况)
用的是默认图片也有 38k/次
三.排查原理 对回包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];
//////
}
效果图如上面分析。
如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。