首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

换个角度提升APP性能和质量

分享大纲 第一,移动性能与质量的概述 第二,所谓的“新”技术概念的介绍 第三,几点有意思的事和一些困难 移动性能与质量的概述 饿了么的用户端不会出现高峰期的现象,订餐时间都选在中午之前的一到两个小时,...最早是以崩溃来算,但后来崩溃在后期并不是特别看重。崩溃率高包括ANR多这一类肯定是差,只能轮为可用的阶段。...前端在滚动页面的时候需要做一些效果,在滚动时监听。在很高的频率下不停地设计元素的位置,会导致滚动时的卡顿问题。而前端用的解决方法就是节流。 我们的做法还应用于正在开发的APM台。...大家有时候也会要求实质性非常高的数据往后端发,用户点击一搜就把数据转换成事件,可这样的情况下瞬间发送服务器还是会崩溃。我们做一个简单的调整,就是做忍受值。...我们认为有忍受值,目前设定的单位是60秒钟,60秒钟的数据都认为它是有实时属性、架构的往后端传。一旦出超过60秒,就从传输队列去掉。

777110
您找到你想要的搜索结果了吗?
是的
没有找到

Bugless 异常监控系统 (iOS端)

它的主要功能: 实时监控SDK业务异常 汇总包体崩溃排重与聚合后的数据 统计影响设备 上报崩溃日志 收集iOS系统向上兼容性问题 监控客户端请求的网络问题 <!...二、认识崩溃和异常 在讲解 Bugless 之前,让我们从三个层面来介绍,让大家认识App为什么会出现崩溃和异常,以及如何应对。...2.1、App 层面 App 出现崩溃(crash)原因,是因为违反iOS系统运行规则导致的,产生crash的三种类型: 2.1.1 内存引发闪退。...捕获此异常方法如下: [获取崩溃异常的代码实现] 注册异常捕获函数 [注册异常捕获函数] 以下是捕获流程图: [异常捕获流程图] App 启动初始化后,会判断是否开启异常监听...我们这时就需要用到崩溃堆栈解析工具。 对比两款符号化工具Symbolicatecrash(命令行工具)和SymbolicateX(UI工具), 总的来看,两个工具都使用了相同解析关键工具atos。

2.5K30

深入探究App压力测试的关键要点:从零开始学习Monkey

,健壮性随机点击比顺序点击更容易发现问题Monkey 基本用法在命令提示符中输入 adb devices 查看有无连接的设备确认有设备连接获取 app 的包名adb shell monkey [参数]...-v 10-s :用于指定伪随机生成器的 seed(种子)值adb shell monkey -s 123 10--throttle :每个事件结束后的间隔时间...:跟踪本地方法的崩溃问题Monkey 事件选项--pct-touch:触摸事件--pct-motion:滑动事件--pct-appswitch:activity 之间的切换--pct-pinchzoom...:缩放事件--pct-rotation:屏幕旋转事件--pct-flip:键盘事件--pct-anyevent:任意事件注意:所有类型属性比例加起来不能超过 100雪球 app 压力测试实战确定测试 app...的包名:adb shell dumpsys activity | grep mFocusedActivity执行 8 小时需要跑的时间/命令之间的时间间隔=要执行的次数 8*60*60*1000/300

6510

app测试之Monkey-随机事件测试

例: adb shell monkey -p com.lilysgame.calculatorjw -v 1000 4、-s种子 指定了相同的种子,那么这两次monkey运行所发送的事件类型和顺序就是一样的...monkey -p com.lilysgame.calculatorjw -v -s 1646799424729 100 5、--throttle :插入固定延迟,事件的间隔事件之间插入固定延迟...2、需求分析 这个测试的目的是希望模拟用户操作,因此需要让Monkey执行的事件尽可能地接近用户的常规操作,这样可以最大限度地发现用户使用过程中可能出现的问题。...测试是指定应用,因此需要使用-p指定被测app包名:com.tencent.mobileqq 触摸事件和手势事件是用户最常见的操作,所以通过--pct-touch和--pct-motion将这两个事件的占比调整到...,所以需要在命令中增加限制参数--ignore-crash和--ignore-timeouts,让Monkey在遇到崩溃或没有响应的时候,能在日志中记录相关信息,并继续执行后续的测试; 使用-v指定log

71710

1 个月崩 3 次!盘点一下 2021 年的 10 个宕机名场面

:交待清楚故障原因也是一种能力 B 站崩溃,让年轻人无心睡觉 富途证券服务中断,创始人发 2000 字硬核长文解释技术故障 西安“一码通”半个月崩溃两次 2 国际宕机事件:小 Bug 引起大麻烦 Facebook...我们整理了 2021 年发生的十个重大宕机事件,并总结了故障原因。这些故障大部分是人为造成的,并且依然是我们在系统建设中需要特别注意的地方。...宕机 54 个小时排查出故障原因,通过禁止流式传输功能,逐渐恢复了系统的服务能力。...当地报纸称 115 位消防员投入 6 个小时将其扑灭。经过长达 6 个小时的持续燃烧,SBG2 内的数据应该会损失惨重。 这场大火对欧洲范围内的众多网站造成严重影响。...大约持续了一个小时之后,人们发现这场大规模故障是由 CDN 服务公司 Fastly 引起的。

1.1K50

Java面试:2021.05.30

在悲观锁的情况下,为了保证事务的隔离性,就需要一致性锁定读。读取数据时给加锁,其它事务无法修改这些 据。修改删除数据时也要加锁,其它事务无法读取这些数据。...redis 内部使用文件事件处理器 file event handler ,这个文件事件处理器是单线程的,所以 redis 叫做单线 程的模型。...连接应答处理器会创建一个能与客户端通信的 socket01,并将该 socket01 的 AE_READABLE 事件与命令请求处理器关联。 ...,由于前面 socket01 的 AE_READABLE 事件已经与命令请求处理器关联,因此事件分派器将事件交给命令请求处理器来处理。...操作完成后,它会将 socket01 的 AE_WRITABLE 事件与令回复处理器关联

33430

Android开发笔记(一百零七)统计分析SDK

、二维码的扫描信息、分享的图文内容等等; 4、用户对多媒体信息的接受程序,如听音乐的时长、看视频的时长等等; 二、运行情况分析,包括 1、app的启动时间; 2、app崩溃的日志信息; 3、app...该方法的参数是UMAnalyticsConfig对象,包含了appkey、渠道号、是否启用崩溃采集等等信息。...正常的应用是不需要调用此方法的。...为1-24之间的整数,即1<=rtime_interval<=24,以小时为单位 第四个参数: * 表示是否仅支持wifi下日志发送,若为true,表示仅在wifi环境下发送日志;若为...setAutoExceptionCaught : 设置是否自动采集崩溃信息(即app未处理的异常)。true表示自动采集,false表示不采集。

1.2K20

ChatGPT全线大崩溃!奥特曼亲自致歉:流量远超预期

算下来,崩溃一共持续了近俩小时。 从事故报告来看,OpenAI将此次事件也再次定性为了“重大宕机”(Major Outage)。...此外,还有稍早一点的产品逻辑变更,用户终于不再需要手动选择联网、DALL·E 3等模式,全部“All in one tool”。...网友集体在线崩溃 正如我们刚才提到的,OpenAI短短小时崩溃,更是让部分用户们的心态崩了。 网友们很形象地找出了一个段子来形容这种名场面——AI创业公司老板: 喂?是OpenAI吗?...虽然这只是个段子,但在OpenAI全线崩溃小时里,也有不少网友道出了自己内心真实的声音。 例如有表示“没法工作了”的,甚至在抱怨: 得~我现在得手敲邮件了。...手机上的APP也可以无需切换模式,就能浏览网页、分析数据,以及生成图片了。

14020

请介绍一下如何进行APP专项测试?

一、稳定性测试 稳定性指APP在手机上长时间运行,功能是否稳定,一般稳定性测试时间是 N*12小时。在工作中一般采用Monkey进行随机测试,检测APP的健壮性。...-p :指点包名,如果要指定多个包名,需多个-p参数; -v :指定日志的详细程度,取值1-3,三个 -v 详细程度最高; --throttle :指定用户操作时的时延,单位毫秒; -s :指定伪随机生成器的...seed值,取值1-10,当seed相同,产生的事件序列也相同; --ignore-crashes :指应用程序崩溃,monkey依然发送事件,直到事件数完成; --ignore-timeouts:指应用程序发生...2)搜索日志: 程序无响应,ANR问题:在日志中搜索"ANR"; 崩溃问题:在日志中搜索"CRASH"; 其他问题:在日志中搜索"Exception"。...此外Heap Free占用过大,波动大,说明对象被频繁的GC,需要定位一下是哪些对象在被频繁的GC。 ③ 一般先记录内存占用情况,然后运行APP,再记录内存占用,对比2次发生的变化。

1.3K41

打破你的认知,java,除以0一定会崩溃吗?

也正是因为 IEEE 754 的规范就是这么规定的, 所以java这么实现的 。 下面这段来自,维基百科, en.wikipedia.org/wiki/Divisi… ? ## 有什么用呢?...这么骚的操作,我不会这么干。 是的,这个操作是有点骚,你不会这么干并不代表其他同事不会这么做。而且很可能你这么干了自己不知道。 在我们写业务代码的时候,这个知识点,很少很少能用上。...尤其像android的app,用户在线上遇到的bug,我们无法复现,只能通过日志去分析排查时; 这个时候每个程序员都是福尔摩斯,根据一行行日志线索,配合实际代码,排查问题的可能性。...如果我们的认知是错误的,任何除以0都会崩溃,那么我们的分析将会直接绕过真相去推理。于是得出结论,怎么可能有bug,不可能的。 于是浪费了很多时间,去收集线索,去推翻我们固有的认知,才能找到真相。...原本1小时就解决的bug,花了5个小时。 也正如,blog开头的引言所表达的。不要小看这些零零碎碎的知识点。

1.4K10

uni-app实战之社区交友APP(7)消息页开发

再实现新消息提示,需要使用uni-app提供的扩展组件数字角标uni-badge,可参考https://ext.dcloud.net.cn/plugin?id=21。...//计算相差分钟 let leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 let minutes = Math.floor(leave2 /...(60 * 1000)) //计算相差分钟 //计算相差秒数 let leave3 = leave2 % (60 * 1000) //计算分钟后剩余的毫秒数 let seconds =...5.聊天页功能完善 首先绑定消息输入框的输入内容; 同时绑定发送按钮的点击事件,实现发送消息; 并且实现在输入消息并发送之后,需要清空输入框; 并绑定@confirm事件,可以在点击完成或前往按钮时触发发送事件...总结 使用已经实现好的库和组件可以加速开发,文中使用到了uni-app官方提供的扩展组件uni-badge用于显示消息、uni-popup用于实现下拉弹出框,同时使用专门的JS库来进行时间处理,不需要自己再造轮子

1.8K30

使用 Kubectl 获取 Pod 日志的小技巧

在这篇笔记中,我将展示如何从正在运行的 Pod(包括所有副本)和之前崩溃的 Pod 中获取日志。...使用 Kubectl 获取 Pod 日志 要从 Kubernetes 中的 Pod 获取日志,首先需要找出 Pod 的名称或与 Pod 关联的标签: $ kubectl get pods --show-labels... 如果一个 Pod 有多个副本,并且具有关联的标签(例如 app=my-app),您可以使用它来查看来自具有该标签的所有 Pod 的日志: $ kubectl logs -l app...=my-app 获取最近日志 上面的命令显示了在 Pod 生命周期内收集的所有日志,因此可能需要一些时间才能将它们全部显示出来。...我可以只获取 Pod 的最近 100 行日志: $ kubectl logs --tail=100 要显示最近一小时写入的 Pod 日志: $ kubectl logs --since

8.1K10

Sentry 开发者贡献指南 - SDK 开发(会话)

client 可以明确结束 session 以记录时间或退出条件(崩溃等)。 如果需要,client 应在重新启动时明确结束 session,但 session 不结束是可以接受的。...如果一个会话在 5 天内没有收到第二个事件,则永远是好的。 Session 不一定要启动崩溃。仅仅报告一次崩溃就足够了。...服务器每小时都有预先物化(pre-materialized)的 session 数据。当会话更新事件到来时,服务器将立即将数据具体化(materialize)到正确的存储桶中。...如果将其设置为 true,则表示这是会话的第一个事件。这让服务器优化会话计数,因为不需要重复数据删除(客户端无论如何都是权威的)。在内部设置此标志时,处理时 seq 更改为0。...client 需要对被视为 error 的事件进行计数,并将计数与 session 更新一起发送。正常且错误计数大于零的 session 被视为错误 session。

1.6K20
领券