百度App 低端机优化-启动性能优化(概述篇)

图片

一、前言

移动互联网人口红利见顶,用户增长放缓,移动互联网各公司都在经历从服务好增量用户到服务好存量用户的思维转变,而低端机又是存量用户中重要的组成部分,因此低端机的性能优化变得尤为重要。

性能优化是最重要的优化体验的技术手段,重理论与实践相结合,技术挑战大,百度App性能团队也因此成立低端机专项攻克体验难题。本专题以低端机启动性能优化的视角,覆盖技术架构上的性能设计、性能问题定位、防劣化机制等方面最佳实践,最终形成性能优化闭环

二、价值

以低端机为重点,辐射中高端机,通过技术和产品上的深度优化,可感知的提升用户体验,实现扩大用户规模、提升留存和提升收入的目标。

三、难点

  • 低端机性能问题复杂:百度App启动流程复杂,低端机启动过程中黑屏、卡顿等问题非常严重;

  • 缺乏整体调度机制:涉及业务众多,较多预加载任务,需要平衡研发性能和产品业务指标;

  • 问题定位成本高:现有性能工具,无法高效的发现、定位性能问题,归因分析成本很高;

  • 监控机制不完善:缺乏完善的防劣化机制,只能依靠部分线上打点和用户反馈发现问题。

四、拆分

项目之初有几个灵魂拷问

  • 标准疑问:如何定义低端机?

  • 结合百度App产品现状和手机配置分布,参考业界相关设计,自建低端机标准,采用评分机制,保障评分客观和稳定,保障低端机占比的合理性;

  • 主场景及指标疑问:如何挖掘优化场景并抽象指标,衡量低端机性能?

  • 结合应用商店用户反馈、百度App反馈和论坛反馈,决定低端机优化主场景为点icon启动场景,次场景为端外调起场景,后续在应用全生命周期投入;

  • 基于场景制定反映用户实际体验的性能指标,指导性能优化,量化性能工作;

  • 提效疑问:如何快速发现性能问题?

  • 借助工具提效,自建稳定且高效性能工具基于目前已有工具二次开发,提高发现问题效率;

  • 优化疑问:如何系统化的优化性能问题?

  • 建设应用级的基础调度机制,服务于业务,并协助业务优化性能;

  • 挖掘应用级的基础机制痛点,优化并升级基础机制,快速提升性能;

  • 防劣化疑问:如何避免性能优化的同时出现劣化问题,并打造劣化问题修复自运转的飞轮?

  • 建设全研发流程的问题发现与定位的基础机制,简称版本防劣化;通过自动化测试和自助化文档服务,做到自动化测试、自动化分析、自动化分发和自助化解决,建设指标的线上线下可观测体系。

基于上述疑问的理解,将低端机启动性能优化拆分为3个子方向,分别为观测设施、基础设施和业务优化

图片

  • 观测设施:建设低端机标准,建设启动性能衡量指标;建设线上、线下防劣化机制,实现线下随版的性能问题前置和线上问题的自动化分析与归因;

  • 基础设施:三驾马车,高效性能工具、高性能组件、调度框架。高效性能工具主要包括Trace/Hook/TimeProfiler,服务于快速发现并自动化性能问题;高性能组件主要优化手百基础性能并赋能业务,突破系统约束与瓶颈,建设行业内领先的基础设施;调度机制作为优化的核心手段,业务初始化任务可通过接入调度器快速实现性能优化;

  • 业务优化:根据工具输出性能问题,协同业务优化不规范耗时、不合理“预”,初始化任务通过接入调度框架方式达到优化效果。

本文为低端机优化-启动优化项目的概述篇,整体描述下观测设施、基础设施和业务优化三个方面,后续会陆续发布性能工具2篇(Trace工具+Thor Hook工具)、性能优化1篇、防劣化体系1篇。

4.1 观测设施

4.1.1 低端机标准

低端机定义,目前是按照机型评分PV/UV占比低于15%的评分定义为低端机,机型评分有:静态评分、动态评分和综合评分(静态评分和动态评分加权值)方案,目前线上百度App以静态评分为主,动态评分受运营等影响有波动,业务可基于动态评分判断设备当前负载情况。基于Android和iOS机型分布差异,Android以模型计算为主,iOS以配置表为主。

静态评分

Android:机型种类繁多,无法枚举,因此需通过手机的硬件配置信息(CPU/GPU/内存等),利用训练的数据模型,多维度计算给出一个综合评分,低端机占大盘比例15%。

iOS:机型种类优先,可枚举,因此可通过配置表直接读取机型评分分数,低端机占大盘比例15%。

动态评分

通过本地收集应用性能指标,目前实现了性能维度(启动速度为主)作为判断依据,线上收集大盘数据,并拟合生成启动时间-性能评分,生成模型,通过传入性能指标参数,得出动态评分。

综合评分

根据静态得分和动态得分,按照权重计算,得出最终得分。

静态得分* weight + 动态得分 * (1 - weight) = 设备最终得分启动性能指标。

4.1.2 启动性能指标建设

TTI (Time To Interactive),代表用户可输入的时间。TTI概念来源于Web,先来看下面这张图:

图片

图中涉及几个关键名词,FCP (First Contentful Paint) 首次内容绘制,FID (First Input Delay) 首次输入延迟,从图中图示可知TTI指标基本可代表主线程的流畅程度。

Web端TTI指标优劣评估如下,来源于https://web.dev/interactive/。

图片

基于Web端性能指标,结合移动端现状抽象TTI指标,衡量应用打开后,用户可输入的时间,主要包括常规启动TTI衡量点击icon进入手百性能,首次安装启动TTI用于衡量新用户首次安装启动应用的启动性能,在百度App上TTI起点为应用进程创建时间戳,比较接近于点击桌面的时间戳,结束点为主线程首次空闲。

图片

长久以来,开发者为了追求更快的渲染速度而对页面进行优化,但有时,这会以牺牲 TTI 为代价。当用户尝试与看似具备交互性但实际上并非如此的页面进行交互时,用户可能会有如下两种反应:

  • 在最好的情况下,用户会因为页面响应缓慢而感到恼火。

  • 在最坏的情况下,用户会认为页面已损坏,因此很可能直接离开,他们甚至可能对您的品牌价值丧失信心或信任。

因此,为了避免这个问题,需尽一切努力将页面渲染完成时间和 TTI 之间的差值降至最低。

4.1.3 防劣化机制建设

优化犹如进攻,防劣化犹如防守,只有做到攻守兼备,才能稳健优化。如何搭建防劣化机制,观测线下和线上的问题及指标情况,变得尤为重要。线下防劣化是第一环,及时发现劣化问题并提升问题分析效率,保障测试覆盖度,尽量覆盖用户的核心场景;线上防劣化则是在线下未发现问题并上线后,快速发现并快速定位线上问题。本文中会做简短阐述,后续会有专文来阐述这块内容。

图片

线下防劣化

在代码主线分支(如master分支)或者研发同学开发分支,可提交防劣化任务自动化测试,目前百度App已实现Daily的自动化测试与分发,每个版本防劣化基本不需要投入人力,流水线自动分发,业务同学自助式解决问题。

Daily测试中主要有如下几个步骤:

图片

  • 打包自动化:通过打包流水线和性能工具自动化脚本,实现流水线自动编译插桩、打包;

  • 测试自动化:通过Docker镜像实现快速部署和迁移,通过Appium自动化测试框架,执行定制化case实现启动场景真机自动化测试;

  • 分析自动化:通过脚本生成性能数据(Trace/Timeprofiler),脚本对比分析启动耗时、堆栈反混淆,产出劣化报表(或者svg图)的自动化;

  • 分发自动化:通过脚本对劣化问题进行去重、置信度过滤,然后通过分发服务进行问题归属定位,分发;

线上防劣化

旨在快速发现已带到线上的劣化问题分析与归因,主要包括实验防劣化和函数级防劣化。

实验防劣化

实验在线下比较难测试完全,极有可能在实验分支放量期间,线上数据出现变化,需结合实验平台,打通数据平台,观测线上核心指标变化,此部分作为线上防劣化的关键一环。

在实际生产中,发生过多次实验放量导致的劣化,均通过此方式定位并归因,具体实验数据表现如下:

图片

备注:业务显著性需要观察多日数据,截图为一日数据。

函数级防劣化

函数级防劣化主要指函数级别打点报表观测能力建设与自动化分析建设。

  • 函数级别打点报表观测能力建设:日常性能相关打点有sdk和业务调用两部分,较为普遍的实现方式为业务代码依赖打点sdk,接收打点数据后做数据上报,这种方式可以实现功能,但监控模块在中台输出组件时会是棘手问题,因此需要解除依赖。目前线下防劣化已实现自动化插桩,只是插桩逻辑为Trace.beginSection类似此种函数调用,业务无感知,因此解除依赖部分同样可以采用类似方式,但需要对插桩数据做控制, 否则包体积会出现较大增长。因此,基于配置文件的插桩,将打点sdk入口插入到需监控的业务方法中,即完成了与业务的解耦,也控制了包体积的增长。在确定解耦方案后,如何确定插桩函数List也是比较关键一环,关系到线上问题定位,在确定函数插桩列表时,需结合trace分析结果监控主线程长耗时任务和子线程核心任务,同时也需主动监控运营相关接口,保障数据波动时可归因。打点sdk中囊括维度主要有“函数调用耗时“和”函数开始执行时间戳“,在线上统计时会形成“函数执行PV维度”,线上报表可直观查阅3个维度相关信息。

  • 自动化分析建设:通过“函数调用耗时“、”函数开始执行时间戳“和“函数执行PV”3个维度相关信息,基本可实现线上问题的自动化分析与归因,整体逻辑为:在自动化分析中,首先通过函数开始时间戳维度可以诊断出哪些业务执行开始时间变慢,在日常问题定位中,极有可能会出现监控函数耗时无法明确诊断出问题,主要原因为函数级别监控为有限个函数统计,此部分监控会与主观认知相关,此时可借助函数开始时间戳维度和函数打点的PV维度,来看哪部分执行PV或者执行时间戳变慢。总体流程如下图:

图片

4.2 基础设施

基础设施是项目中最核心的组成部分,主要工作有高效性能工具、高性能组件和调度框架,本文中会做简短阐述,后续会有专文来阐述这块内容。

4.2.1 高效性能工具

TraceView/CPU Profiler性能损耗较大,原生Systrace无法定位应用程序代码问题,随着优化逐渐进入深水区,如何快速定位和挖掘问题,成为日常工作中急需解决的问题。百度App在项目中开发了两套工具,分别为Trace工具和Hook工具,Trace工具以ASM插桩为基础,结合Perfetto相关能力,做到可视化和自动化分析;Hook工具以Epic、Xhook等Hook能力为基础,设计插件框架,实现插件级的Hook能力,支持热插拔,整体架构图如下:

图片

通过工具的建设,Trace工具可准确反映性能问题,分析效率提升明显,可发现锁、长耗时等问题,支持版本对比,为防劣化提供有力支持;Hook工具完备Hook能力,即用即插拔,可输出I/O、线程等系列问题。在工具落地中,支持了低端机启动性能项目外,也支持了诸多项目的顺利落地。关于工具的细节可关注公众号后续发稿。

4.2.2 高性能组件

在低端机优化-启动性能优化中挖掘出诸多基础组件的性能问题,比如系统原生组件性能差导致业务性能差问题,比如基础组件随着版本迭代或使用业务方逐渐增多导致性能差问题,比如引入的第三方SDK导致的性能问题等,对诸多基础组件做了基础改造,如Eventbus事件库,Fresco图片库、网络库等、也对系统相关机制做了优化,如ContentProvider、FileProvider等,本文中简单阐述两个比较有代表性的优化:SharedPreferences优化和ABTest锁优化,在后续文章中会对优化项做详细阐述。

SharedPreferences优化

原生SharedPreferences有首次读取性能差、创建线程多、卡顿/ANR,多进程支持差等缺点,从启动性能角度看SP加载时wait时长占比较大,主要原因是该线程加载SP时,会新创建异步线程执行文件加载,此时该线程处于wait状态,直到文件加载完成后该线程才可继续执行,须对此种情况做针对性优化。

通过调研Google DataStore、腾讯MMKV、滴滴Booster、头条等业界对KV存储做的相关优化,并参考其实现,最终在百度App中落地UniKV,突破系统限制,彻底解决原生SharedPreferences有首次读取性能差、创建线程多、卡顿/ANR、多进程支持差等缺点。

核心实现主要有:

  • 高性能的数据迁移框架,非阻塞式数据迁移方式,业务无感知;

图片

  • 支持强类型存储,记录完备数据,保障getAll接口可正常返回使用,考虑到文件存储形态可能会发生变化,存储完备数据保障数据再次迁移的可行性;

    图片

  • 统一接口层,默认实现为系统SP实现,不影响业务中台,无学习成本,KV优化和数据迁移对业务透明,手百依赖UniKV实现层。

对比业界对KV存储做相关优化,均有不同程度优势,目前在百度App大规模使用,接入文件100+,优化线程数100+,优化TTI约1.2S。

实现
多进程支持
线程个数优化
卡顿/ANR
是否支持强类型
SP接口对齐
UniKV
DataStore
×
×
MMKV
×
×
Booster
×
×

头条
×
×
锁优化

通过工具可看到锁相关信息,比如可以看到这段Trace,具体如下图所示:

图片

在项目中锁相关优化也是非常关键,以ABTest优化举例。从Trace文件中可以看到在ABTest模块中出现了较多的锁信息,读取性能差,因此对ABTest模块进行了全面的摸底和分析,ABTest问题主要表现为:

  • 通过Trace工具发现业务使用ABTest组件时出现锁同步问题,耗时200ms+;

  • ABTest组件由于历史原因,存在新老AB存储数据,导致首次读取耗时2S+;

  • 首次读取时易出现AB值不准确问题,导致实验数据不可信。

针对上述几个问题,对ABTest做了重构,框架设计如下:

图片

核心优化主要分为初始化优化和数据读取优化:

  • 初始化优化:优化前读取新老AB全量数据,文件格式为SP;优化后读取实验id和实验开关缓存文件,文件格式为JSON/PB格式,如果缓存文件不存在,则会读取原始数据保存数据。

  • 数据读写:优化前synchronized 整个内存缓存,读和写均有锁保护,在高并发场景性能较差;优化后,读无锁,直接读取实验内存缓存,写无锁,由于写入有限次,在本次写入时通过内存级操作,在新申请的内存缓存中更新数据,更新全部数据后,将内存中的缓存地址更新为新申请的内存地址,解决锁带来的性能影响。

优化效果:

  • 彻底解决业务使用ABTest组件锁同步问题,TTI优化200ms+;

  • 兼容新老AB数据,且通过JSON/PB等数据格式验证,首次读取性能优化95%(小米5机器);

  • 解决AB实验数据准确性问题;

4.2.3 调度框架

百度App启动过程复杂,涉及业务众多,各预加载任务的执行诉求各有不同。在以往业务优化中,通过预加载、预链接、预渲染等各种“预”操作,对性能指标和产品体验做了相关优化,业务完全优化掉耗时是比较理想的情况,会有较多业务依然保留“预”操作的诉求,因此需要建设一套调度框架,输出至业务方,业务可快速接入,快速解决优化业务的“预”操作带来的性能问题,达到启动性能和业务指标的平衡。本文中对此部分做简单阐述,后续也会相关文章详细介绍此部分优化。

整体框架图如下:

图片

调度框架的核心为智能调度,输入有两部分,主要是任务和信息采集:

  • 任务:业务可将初始化、预加载任务封装成Task,注册至任务管理器中,任务管理器可对任务进行识别并表示,比如所属业务、依赖业务等,对任务执行情况做监控;

  • 信息采集:主要包括机型画像(高/中/低端机)、行为画像(用户使用业务频次与时长)、场景识别(闪屏场景、端外调起场景、发起搜索场景等)、分级配置(不同机型画像不同的策略配置)。

输出为不同的调度形态,有个性化调度(不同用户运行时初始化不同业务)、分级体验调度(用户不同配置机型不同效果)、精细化调度(基于场景做调度)、分优先级延时调度(任务延迟调度支持设置优先级,调整任务顺序)和首页UI并行渲染技术(主要指商业闪屏和主页并行渲染),业务可根据预加载任务执行诉求快速接入调度实现优化。在任务调度中,会为特殊业务做针对性调度,赋能业务,如闪屏和首页并行渲染,提升商业请求成功率,进而商业收入。

4.3 业务优化

与业务协同,在技术和产品方面深度优化启动性能,主要流程如下:

图片

  • 问题发现:线下发现问题主要通过工具,如Trace工具发现主线程耗时严重问题,主线程锁等待问题等,Hook工具发现主线程I/O问题,线程创建问题等;线上发现问题主要通过线上打点和实验防劣化机制;

  • 问题协同:与业务沟通问题及技术方案,必要时协助其分析并优化,确认上线排期;

  • 问题优化:主要由业务来完成具体优化,如果涉及基础机制相关工作,则会由我们来主导优化,在整个优化中,调度优化为主要优化方式,业务可快速接入调度机制实现优化。

  • 优化验证:及时跟进问题修复情况,在发版前回归问题,跟进线上优化效果,有些优化需要平衡业务指标和性能指标,如果优化不及预期需继续协同优化。

五、总结

项目持续1年半,共经历了3个阶段:夯实基础阶段、进攻突破阶段、精细管控阶段。

第一个阶段:夯实基础阶段

  • 建设低端机标准;

  • 建设性能指标;

  • 建设高效性能工具,提供发现问题的能力,发现突出矛盾,跟进解决;

  • 建设基础调度机制,为后续业务接入做准备;

第二个阶段:进攻突破阶段

  • 通过性能工具挖掘业务相关性能问题,与业务协同优化,并提供调度机制解决业务初始化与启动性能矛盾;

  • 深度挖掘底层组件性能优化性能;

  • 结合核心业务场景,挖掘业务价值;

第三个阶段:精细管控阶段

  • 建设研发全流程的防劣化机制;

  • 通过自动化测试和自助化服务,防劣化机制自运转,控制人力成本。

  • 深度挖掘业务场景,如目前在解决的开屏、外部调起等场景,搜索、Feed等核心场景需要渗透,需要在做调度机制升级相关工作;

低端机优化-启动性能优化项目完成了基础设施、监控设施和业务优化方向的建设,实现可感知的用户体验提升,TTI指标获得明显优化效果,常规冷启动TTI Androd 优化50%+ ,iOS 优化40%+ ,首次启动TTI:Android 优化 40%+,iOS 优化30%+ 。在项目中,积极与用户增长和商业的同学合作,也均取得不错的结果,百度App也将优化经验、基础机制、基础工具输出至矩阵产品,助力矩阵产品的性能提升。

六、展望

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能导致用户流失,启动场景作为资源竞争、卡顿情况严重的场景,各个公司团队均投入了较多精力来进行优化,且优化技术层出不穷,虽然百度App在此方向做了非常多的优化与尝试,但路漫漫其修远兮,百度App会持续深耕启动性能优化,为用户带来极致的启动体验。

与此同时,专注点不仅局限于启动场景,也会将更多精力投入到应用全生命周期、各View系统的流畅度建设与优化上,深入优化用户体验。

——————————END——————————

参考资料

[1] Web指标FID链接:

https://web.dev/fid/

[2] Epic链接:

https://github.com/tiann/epic

[3] xHook链接:

https://github.com/iqiyi/xHook

[4] Perfetto链接:

https://perfetto.dev/docs/

[5] MMKV链接:

https://github.com/Tencent/MMKV

[6] Booster链接:

https://github.com/didi/booster

推荐阅读:

面向大规模数据的云端管理,百度沧海存储产品解析

增强分析在百度统计的实践

基于 TLS 1.3的百度安全通信协议 bdtls 介绍

百度用户产品流批一体的实时数仓实践

如何治理资源浪费?百度云原生成本优化最佳实践

面向大数据存算分离场景的数据湖加速方案

百度APP Android包体积优化实践(三)资源优化

百度Geek说
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
博客
从打点平台谈打点治理
06-14 549
本文从打点平台角度,描述日志中台在打点治理方面提供的解决方案与实践经验。
博客
手把手教你用Spring Boot搭建AI原生应用
06-06 851
文章详细介绍了 Spring AI 的使用方法,并将 Spring AI 与 Spring Boot 集成,结合检索增强生成技术,帮助读者轻松开发出一个 AI 原生应用。
博客
Baidu Comate帮开发者“代码搬砖”,2天搞定原先3周工作量
06-04 338
提升代码编写效率,助力医学影像数据处理项目提效。
博客
用 Baidu Comate 实现研发提效,百度营销服务团队打造“轻舸”加速营销智能化
05-30 1217
智能代码助手 Baidu Comate 助力产品 AI 原生重构。
博客
大模型效能工具之智能CommitMessage
05-23 1241
本文阐述了一种大模型应用-智能CommitMessage小助手,帮你按照提交规范自动生成符合规范的CommitMessage, 告别CommitMessage的烦恼。
博客
从0到1:广告营销多智能体架构落地全攻略
05-21 432
在 AI Native(人工智能原生)时代,广告营销平台经历了根本性的变革,这些变化不仅提升了广告的效率和精准度,还重塑了广告行业的整体运作方式。
博客
百度百舸 AIAK-LLM 的大模型训练和推理加速实践
05-16 772
今天主要给大家先分享分享百度百舸的「大模型训推任务加速套件 AIAK-LLM」 的内容。
博客
解锁!智能代码助手 Baidu Comate 硬核能力
05-14 283
Baidu Comate 是百度基于文心大模型研发的智能代码助手,以插件的形式深度集成在 IDE 中,借助文心大模型强大的文本理解与生成能力,为每一个工程师提供一个7*24小时的 AI 编码助手。
博客
大模型驱动的新一代 BI 平台,Sugar BI 开启智慧决策新模式
05-09 392
全文包括了可视化 BI 分析技术架构、智能图表推荐策略与规则设计、Sugar Bot 智能问数的技术实现流程,以及目前的场景应用等。
博客
AI原生实践:测试用例创作探索
05-07 1059
AI 技术不仅能重塑用例撰写过程,我们相信,未来 AI 还能辅助用例的执行、转化、更新和消亡等过程,进而为研发测试保质提效。
博客
一次性讲明白,如何搞定一个可以支持多芯混合训练的 AI 集群
04-30 453
本文讨论的重点:建设一个支持多芯混合训练的 AI 集群,并加速运行一个大模型训练任务。
博客
百度沈抖:智能,生成无限可能
04-25 1675
人人都是开发者,人人都是创造者。
博客
Prompt工程师压箱底绝活——Prompt的基本组成部分、格式化输出与应用构建
04-23 1239
在大语言模型中,Prompt 的作用主要是给大语言模型提示输入信息的上下文和输入模型的参数信息。
博客
多元 CPU 性能调优的技术挑战、产品设计和业务实践
04-18 295
本文内容分三个部分:多元 CPU 性能调优的技术挑战;Btune 一键调优产品设计方案;百度智能云的调优实践。
博客
基于afx透明视频的视觉增强前端方案
04-16 1023
文章介绍了一种降低动效研发成本的视觉增强前端方案。
博客
百度一站式数据自助分析平台(TDA)建设
04-11 1029
新一代自助分析BI,基于主题宽表实现自由拖拽分析,自定义生成仪表盘,一键订阅发送,辅助分析提效。
博客
浅析如何加速商业业务实时化
04-09 278
本文介绍了如何通过场景化端到端托管加速百度商业业务实时化取得增收
博客
云原生数据库下一站:像 MySQL 一样流行,让更多人受益于新技术的发展
04-07 980
随着互联网的蓬勃发展,MySQL 等开源数据库掀起了一股浪潮。而云计算的崛起则标志着云数据库新时代的来临。
博客
登录系统演进、便捷登录设计与实现
04-02 685
本文探讨登录认证技术的演进历程,并介绍在终端设备上实现便捷登录的设计与实现方法,以供各位同学参考。
博客
百度智能云千帆,产业创新新引擎
03-28 1427
本文整理自 3 月 21 日百度副总裁谢广军的主题演讲《百度智能云千帆,产业创新新引擎》。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 深入理解 WKWebView (渲染篇) —— DOM 树的构建 6983
  • PornNet:色情视频内容识别网络 6104
  • 百度程序员开发避坑指南(前端篇) 5151
  • 视觉Transformer中的输入可视化方法 4581
  • 构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景 4141

分类专栏

  • 百度技术分享 40篇
  • 百度小程序 2篇
  • 百度技术 2篇
  • 后端 41篇
  • 前端 33篇
  • 百度 55篇
  • 数据库 13篇
  • 搜索 6篇
  • 移动端 13篇
  • 直播 1篇
  • 中台 2篇
  • c++ 5篇
  • 驱动设计 1篇
  • 云原生
  • 小程序 1篇
  • ai 1篇
  • C语言 3篇
  • 中间件 1篇
  • 百度云 1篇
  • 百度技术分享-智能小程序框架性能优化实践 2篇

最新评论

  • 中间件技术在百度云原生测试中的应用实践

    m0_75248400: 無界一點通更好用表情包表情包表情包

  • 百度沈抖:智能,生成无限可能

    普通网友: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,期待博主持续带来更多好文【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 基于FFmpeg和Wasm的Web端视频截帧方案

    weixin_46902459: 大佬。前端使用ffmpeg添加文字时,中文乱码,英文正常显示,这是为什么

  • 百度搜索展现服务重构:进步与优化

    征途黯然.: 百度搜索展现服务重构进步与优化文章太赞了!让人大开眼界。

  • 百度搜索万亿规模特征计算系统实践

    飞速移动的代码菌: 哈咯,问下,这里excalidraw的中文字体怎么出来的,是用的哪个中文字体呀?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 从打点平台谈打点治理
  • 手把手教你用Spring Boot搭建AI原生应用
  • Baidu Comate帮开发者“代码搬砖”,2天搞定原先3周工作量
2024
06月 3篇
05月 7篇
04月 9篇
03月 8篇
02月 6篇
01月 8篇
2023年120篇
2022年124篇
2021年91篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司大鹏网站推广系统公司双龙至尊标王多少钱和田品牌网站设计公司南昌网站定制推荐西安seo优化报价保山模板制作呼和浩特网站优化按天计费公司云浮网站排名优化推荐那曲网站设计推荐坑梓品牌网站设计报价河池SEO按天收费哪家好娄底网站推广工具报价天门百度seo价格许昌网站排名优化报价盐田模板推广东莞百姓网标王报价通化网站关键词优化哪家好新余营销网站公司安顺优化价格霍邱seo网站优化报价莱芜模板推广哪家好普洱关键词排名包年推广报价阳江网站制作设计钦州网站改版多少钱衡阳关键词按天扣费池州英文网站建设报价西宁模板推广推荐黔西南英文网站建设多少钱福田网站推广系统公司济南SEO按天收费报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化