如果你觉得这篇文章对你有帮助,请不要吝惜你的“关注”、“点赞”、“评价”、“收藏”,你的支持永远是我前进的动力~~~
任何流量都是要付出成本的,那就要衡量得到的收益是否能够覆盖成本,本文是我在做网易考拉性能优化时的真实实践,希望对你也有帮助!!!
一、流量ROI
ROI(Return on Investment)是衡量广告或营销活动投资回报率的一个关键指标,它帮助分析者了解投入在吸引流量的资金是否带来了相应的收益。
流量主要分为三种情况:
- 有效流量:这部分流量是指那些能够带来实际效果的访问量。例如,通过这些流量产生了购买、注册或其他预期的行为。
- 低效流量:这部分流量虽然可能产生了一定的互动(如点击),但最终没有转化为实际的效益。这可能是因为目标受众不匹配或者是推广策略不当等原因造成的。
- 无效流量:这部分流量完全没有效果,可能是由于恶意点击或者其他非真实用户的访问导致的。
围绕这三个部分的中心概念是“有效性评估”,这包括以下几个具体指标:
- 请求量:指用户发起的请求次数。
- 曝光率:指展示位被看到的机会比例。
- 点击率:指展示位被点击的比例。
- 转化率:指从访客到客户或完成特定目标的比率。
- abtest:一种实验方法,用于比较不同版本的效果以确定哪个更优。
- 直觉、经验:根据个人直觉和专业经验对流量质量进行判断。
二、流量优化案例分析
1、APP商品详情页大促预告引起的血案
商品详情页是大促期间流量最大的来源,我们发现,大促开始时,有一个奇怪的现象,大促0点流量飙升到峰值,但10秒后流量迅速降低一半。
我曾经也开发过安卓应用,对安卓有一定的了解。
在用户浏览页面时,Activity会形成栈的结构,层层压栈。但我们的大促活动的要求是时间一到,页面会自动刷新,因此在设计时每个商品详情页会有一个定时任务,虽然页面没有显示,到时间时也会定时刷新,无形中增加了很多无流量。
我们做下如下优化方案,通过优化刷新机制,大大降低了流量:
- 只有顶层才会定时刷新:不可见的页面不刷新
- 流量打散,随机延时1-3秒刷新,分散流量
- 局部刷新:不要整个页面一起刷新,而仅刷新关键区域,如价格、促销等信息
2、推荐位
在评价、购物车页面等大量的地方都有推荐位,这部分流量仅显示在页面最底部,通常情况下用户是看不到的。
因此这部分流量无需一上来就全部加载,这部分我主要做了两方面的优化:
1、延迟加载:页面滚动到这个位置时才真正发起请求,获取数据展示
2、分页加载:原来的设计是一次性的加载50条数据,改为分页加载,一次加载10条数据
三、流量治理方法
流量治理的方法有很多,具体来说,可以从以下几个方面入手:
- 消除无用的调用:移除那些不再需要或没有实际用途的应用程序或服务调用,以减少不必要的流量消耗。
- 去除重复的调用:识别并删除系统中重复的服务调用,避免资源浪费和数据冗余。
- 使用更加轻量的方法:采用更高效、占用资源更少的方法来处理数据和服务调用,从而降低流量消耗。
- 缩短调用链路:优化系统架构,减少服务调用的层级和路径长度,提高响应速度和效率。
- 异步按需加载:根据实际需求动态地加载资源和数据,而不是一次性全部加载,这样可以有效控制流量使用。
- 减少一次加载数据量:在保证功能的前提下,尽量减少每次加载数据的大小,减轻网络负担。
- 缓存:利用缓存技术存储频繁访问的数据,减少对网络的依赖,提升性能和用户体验。
- …(省略号表示可能还有其他未列出的方法)
这些措施旨在通过优化应用程序的设计和使用方式,合理管理流量,提高系统的效率和稳定性。
四、优化效果
主要从“入口流量”和“内部流量”两方面,总结下我的优化效果:
1. 入口流量:
- 商品详情页减少大促0点整体50%的流量。
- 首页流量优化: 5个同步请求优化为两个2个同步请求+3个异步请求。
- 各推荐位的优化: 等价减少220W单个商品模块的请求次数。
2. 内部流量:
- 增加本地缓存,交易减少50%的商品服务调用量。
- 评论、社区改用商品组轻量级接口
- 商品详情页通过架构的调整,优化调用链路,减少了大量的重复调用。
整体效果:商品、促销、优惠券等基础服务大促期间无压力,cpu30%以下”,表明这些优化措施使得系统在处理相关业务时更加高效。