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

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

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

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

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

7510

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

73110

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 事件与令回复处理器关联

33730

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也可以无需切换模式,就能浏览网页、分析数据,以及生成图片了。

14420

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

请介绍一下如何进行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

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

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

1.7K20

使用 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.5K10
领券