更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

用户体验是决定互联网产品能否长久生存的基础,每一个基于产品功能、使用、外观的微小体验,都将极大关系到用户留存影响。本文将讲述火山引擎 A/B 测试(DataTester)助力企业协作平台飞书进行用户体验优化的案例。

对飞书而言,用户体验旅程从打开产品页面的一瞬间就已开始,这里有一个十分重要的指标——页面秒开率,秒开率是指页面在一秒之内打开的比率。为了能够持续吸引用户,一款产品则至少需要在 1000 毫秒以内呈现出交互内容。

飞书为了提升用户体验,对其各项功能的秒开率指标的优化下了大功夫,在这个过程中,火山引擎 DataTester 通过严格的变量控制,落地更精准的实验结果,帮助研发团队直接佐证并明确了所选优化方案的收益。

影响秒开率其实有很多种因素,如代码冗余,插件拖累…… 在其中,有一项重要的影响因素是“类加载”。类加载是指当页面被打开时,背后是调用的多个元素的代码,它们会经历验证、准备、解析、初始化等环节后,才能被使用,这个流程是比较耗费时间的。

以飞书的一项功能“飞书妙记”加载为例,当飞书整体进行冷启动时,如果用户是首次打开飞书妙记界面,就会伴随着接近 1600 个类的大量加载,这对页面启动速度有着不可忽视的影响。如何减少如此高的类加载数量对秒开率的影响呢?飞书团队希望尝试采用的方案是:接入 SnapBoost 方案。

SnapBoost 方案的思路是让 app 能够提前对页面使用到的"类"进行加载,通俗来说,也就是在用户打开页面之前,将耗时较长的部分提前进行加载,当用户在打开页面的时候,这些代码省去了编译和解析的时间,可以直接执行,使秒开率得到提升。

那么 SnapBoost 方案是否能有效降低“飞书妙记”的加载时间呢?飞书团队采用了火山引擎 A/B 测试(DataTester)进行方案可行性的重要验证。

本次 A/B 实验三大指标:

  • 类加载数量

  • Activity 切换耗时 :Activity 通常指一个单独的屏幕(页面),此指标指在不同页面之间的切换耗时。

  • 可感知耗时 :指用户操作相关动作(点击播放、滑动卡片等)到首帧渲染出来感知到的耗时。

优化前后收益验证:

火山引擎 DataTester 的实验结果,对 SnapBoost 方案的提升性能假设给予了强有力的佐证,通过 SnapBoost 方案等一系列优化,飞书妙记的秒开率可以达成 37%的优化提升,目前该方案已经成功地进行了全量上线。

除了飞书妙记的秒开率提升,飞书的视频会议等全线功能,其实都已在使用火山引擎 DataTester 进行 A/B 实验。DataTester 为飞书的产品功能迭代带来了明确收益佐证能力。

“ DataTester 是结合 A/B 测试方法论最好的一个工具。”飞书的研发成员在采访时讲到。除了使用 DataTester,飞书团队也会通过灰度等方式来做对比实验。相比起灰度等实验方式,DataTester 的最大优势在于更加严格的变量控制,实验创建者可以更直白地看清楚优化效果,在灰度的基础上,进一步提升实验结果的说服力。

火山引擎 DataTester 目前已服务了美的、得到、凯叔讲故事等在内的上百家外部企业,支持了多种业务场景需求,为业务的用户增长、转化、产品迭代、运营活动等各个环节提供了科学的决策依据,将成熟的“数据驱动增长”经验赋能给各行业。

点击跳转 火山引擎A/B测试DataTester 了解更多

在毫秒量级上做到“更快”!DataTester 助力飞书提升页面秒开率的更多相关文章

  1. 设计师和开发人员更快完成工作需求的20个惊人的jqury插件教程(上)

    [转] 设计师和开发人员更快完成工作需求的20个惊人的jqury插件教程(上) jquery的功能总是那么的强大,用他可以开发任何web和移动框架,在浏览器市场,他一直是占有重要的份额,今天,就给大家 ...

  2. 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...

  3. QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用

    FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...

  4. CSS 和 JS 动画哪个更快

    基于Javascript的动画暗中同CSS过渡效果一样,甚至更加快,这怎么可能呢?而Adobe和Google持续发布的富媒体移动网站的性能可媲美本地应用,这又怎么可能呢? 本文逐一遍览了基于Javas ...

  5. 让互联网更快:新一代QUIC协议在腾讯的技术实践分享

    本文来自腾讯资深研发工程师罗成在InfoQ的技术分享. 1.前言 如果:你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度,特别是弱网络的时候能够提升 20% 以上的访问速度. 如 ...

  6. 正则表达式匹配可以更快更简单 (but is slow in Java, Perl, PHP, Python, Ruby, ...)

    source: https://swtch.com/~rsc/regexp/regexp1.html translated by trav, travmymail@gmail.com 引言 下图是两种 ...

  7. Quick UDP Internet Connections 让互联网更快的协议,QUIC在腾讯的实践及性能优化

    https://mp.weixin.qq.com/s/44ysXnVBUq_nJByMyX9n5A 让互联网更快:通往QUIC之路 原创: 史天 翻译 云技术实践 8月15日 QUIC(Quick U ...

  8. TensorRT 3:更快的TensorFlow推理和Volta支持

    TensorRT 3:更快的TensorFlow推理和Volta支持 TensorRT 3: Faster TensorFlow Inference and Volta Support 英伟达Tens ...

  9. 与 Python 之父聊天:更快的 Python!

    Python猫注: 在今年 5 月的 Python 语言峰会上,Guido van Rossum 作了一场<Making CPython Faster>的分享(材料在此),宣告他加入了激动 ...

  10. 海量数据分析更快、更稳、更准。GaussDB(for MySQL) HTAP只读分析特性详解

    本文作者康祥,华为云数据库内核开发工程师,研究生阶段主要从事SPARQL查询优化相关工作.目前在华为公司参与华为云GaussDB(for MySQL) HTAP只读内核功能设计和研发. 1. 引言 H ...

随机推荐

  1. tailwindcss 选型,以及vue配置使用

    一.为什么选择tailwindcss? Tailwind CSS 是一个受欢迎的.功能丰富的CSS框架,它与传统的CSS框架(如Bootstrap)有些不同.以下是一些人们通常对于Tailwind C ...

  2. QLabel自己总结(常用接口)

    继承关系:QLabel->QFrame->QWidget void setText(const QString &) [slots] 设置标签显示的内容,也可以使用构造函数设置. ...

  3. VS2022修改cs文件模板

    在路径:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\ItemTemplates\AspNetCore\Co ...

  4. 不要轻易定义指向std::vector中的元素的指针

    类应该是被封装的,类的用户通过接口使用类提供的功能,而不必关心类的内部如何实现.然而,C++标准库容器 std::vector 的实现渗透到了接口中来.对于以下代码: const int pushNu ...

  5. 【Spring Boot】【外包杯】学习day02 | 快速搭建一个Spring Boot项目

    1.

  6. Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方法

    修改jdbc.properties文件的密码

  7. 从0到1,手把手带你开发截图工具ScreenCap------001实现基本的截图功能

    ScreenCap---Version:001 说明 从0到1,手把手带你开发windows端的截屏软件ScreenCap 当前版本:ScreenCap---001 支持全屏截图 支持鼠标拖动截图区域 ...

  8. [洛谷P3959][NOIP2017提高组] 宝藏

    [NOIP2017 提高组] 宝藏 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 \(n\) 个深埋在地下的宝藏屋, 也给出了这 \(n\) 个宝藏屋之间可供开发的 \(m\) 条道路 ...

  9. JS对后端响应的long类型数据处理精度丢失问题

    1.数据库的数据 2.前端拿到的数据 前端帮我们进行四舍五入了,这并不是我想要的 3.解决办法 把后端响应的数据long类型转成string类型,可以使用Stream流的方式或者for循环的方式,对响 ...

  10. jextract的使用

    写这个博客的目的:新人去看jextract的官网是看不懂的,就算看懂了也不会使用,一头雾水,我会从0开始教如何使用,如何搭配java去调用c函数. 首先我们得了解jextract是什么,官网的解释是一 ...