Matrix for iOS/macOS

应用性能接入框架
授权协议 BSD
开发语言 Java C/C++
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 国产
投 递 者 郑帅
操作系统 OS X
开源组织 腾讯
适用人群 未知
 软件概览

Matrix for iOS/macOS 是一款微信团队研发并日常使用的性能探针工具,目前集成在 iOS 和 macOS 微信的 APM(Application Performance Manage)平台中使用。Matrix for iOS/macOS 建立了一套 iOS 和 macOS 平台上统一的应用性能接入框架,通过对性能监控项的异常数据进行采集,帮助开发者开发出更高质量的应用,从而提升应用的用户体验。

Matrix for iOS/macOS 有哪些功能

Matrix for iOS/macOS 当前监控范围包括:崩溃、卡顿和爆内存,目前包含两款插件:

  1. WCCrashBlockMonitorPlugin 

  2. WCMemoryStatPlugin

WCCrashBlockMonitorPlugin

一款基于 KSCrash 框架开发,具有业界领先的卡顿堆栈捕获能力的插件。卡顿捕捉具有如下特点:

  • 通过检查 Runloop 运行状态判断应用是否卡顿,同时支持 iOS/macOS 平台;

  • 具备耗时堆栈提取能力,可获取最近时间最耗时的主线程堆栈。

同时插件也具备与 KSCrash 框架一致的崩溃捕捉能力。

WCMemoryStatPlugin

一款性能优化到极致的内存监控工具,能够全面捕获应用出现爆内存时的堆栈以及内存分配情况。与现有的内存监控工具相比,WCMemoryStatPlugin 性能表现更加优异,并且监控的对象更加全面,它具有如下特点:

  • 在应用运行期间获取对象存活以及相应的堆栈信息,在检测到应用爆内存时进行上报;

  • 使用平衡二叉树存储存活对象,使用 Hash Table 存储堆栈,性能优化到极致。

未来规划

  1. 计划扩展卡顿监控,让 Matrix for iOS/macOS 具备获取耗电堆栈的能力;

  2. 打造一套完整的云解决方案。

  • 老司机 iOS 周报,只为你呈现有价值的信息。 你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。 欢迎我们的新编辑 @CrazyCoderShi 加入周报团队,@CrazyCoderShi 在跨端方案尤其是 Flutter 方向均有较深的研究,希望接下来能为大家带来更优质

  • 英文原文:https://programmer.ink/think/learn-more-about-oom-low-memory-crash-in-ios.html 中文翻译:https://www.taodudu.cc/news/show-5381.html 在iOS开发过程或者用户反馈中,可能会经常看到这样的情况,用着用着就崩溃了,而在后台查看崩溃栈的时候,找不到崩溃日志。其实这大多数的可能

  • View,几乎是所有界面系统中的基类,在iOS里面是UIView,在Android里是View。 那么,到底View是什么东西,他做了些什么,他是怎么做到的,在这篇文章中,希望能带给大家一些启发。 抽象 View实际上是一个抽象类,他负责对渲染、布局以及触摸事件进行抽象。 渲染抽象 我们知道,不管是 iOS 还是 Android,他们的渲染引擎都是 OpenGL,OpenGL是面向C语言的(当然,

  • 引言 Core Graphics框架是基于Quartz的高级绘图引擎。 它提供了无与伦比的输出保真度和轻量级2D渲染。 使用此框架可以来处理基于路径的绘图,转换,颜色管理,屏幕渲染,图案,渐变和阴影,图像数据管理,图像创建和图像蒙版,以及PDF文档的创建,显示和解析。在macOS中,Core Graphics还包括用于处理显示硬件,用户基础输入事件和窗口系统的服务。本文将重点介绍这套框架下重要的数

  • 在iOS开发过程或者用户反馈中,可能会经常看到这样的情况,用着用着就崩溃了,而在后台查看崩溃栈的时候,找不到崩溃日志。其实这大多数的可能是系统产生了低内存崩溃,也就是OOM(还有一种可能是主线程卡死,导致watchdog杀掉了应用),而低内存崩溃的日志,往往都是以JetsamEvent开头的,日志中有内存页大小(pageSize),CPU时间(cpuTime)等字段。 什么是OOM? 什么是OOM

  • Apple官方提供了Accelerate的Libary,并且官方文档中是swift和Object-C的调用,但是事实上,也可以通过C进行native调用。 因为这些库的头文件目录 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Versions/Cu

 相关资料
  • 准备工作 付费应用协议 如果你还没有,你需要在 iTunes Connect 签署付费应用协议, 并设置您的银行和税务信息。 iTunes Connect 开发人员帮助: 协议、税务和银行概述 创建您的应用内购买 然后,您需要在iTunes Connect中配置您的应用内购买,并包含名称,定价和说明等详细信息,以突出显示您的应用内购买的功能。 iTunes Connect开发人员帮助:创建应用程序

  • 谁能告诉我为什么火花连接器要花这么多时间插入?我在代码中做了什么错误吗?或者使用spark-cassandra连接器进行插入操作是否不可取?

  • 问题内容: 例如,如何使用CoreGraphics和CoreFoundation在macOS上操纵屏幕和处理数据。 问题答案: 假设我们要使用CoreGraphics和CoreFoundation捕获屏幕并获取图像数据:

  • 问题内容: 我正在研究Swift及其与Objective-C的区别。据我所知,Swift的当前版本相当快,甚至比Objective- C还快:请参见此处。 但是,由于大多数测试都是使用排序算法等完成的,所以我想知道,当Swift用于iOS应用开发时,它实际上是否会比Objective- C更快。任何人都可以(最好是从他们自己的经验中)启发我。 问题答案: 有一篇很棒的博客文章,特别是关于Swift

  • 我看到了一些关于函数组合和应用程序之间的异同以及各种实现方法的问题,但有一件事开始让我有点困惑(据我搜索,还没有人问过这个问题)是关于性能的差异。 当我学习F#时,我爱上了管道操作符,它在Haskell的反向应用程序中具有等效性。但在我看来,F#变体无疑更漂亮(我不认为我是唯一一个)。 现在,可以很容易地将管道操作符黑客攻击到Haskell中: 管道(在F#和我们的haskell技巧中)之间的最大

  • 背景 APM 是应用性能监控的缩写。目前 APM 的主要功能着眼于分布式系统的性能诊断,其主要功能包括调用链展示,应用拓扑分析等。 Apache ShardingSphere 并不负责如何采集、存储以及展示应用性能监控的相关数据,而是将 SQL 解析与 SQL 执行这两块数据分片的最核心的相关信息发送至应用性能监控系统,并交由其处理。 换句话说,Apache ShardingSphere 仅负责产

  • SkyWalking 是 Seata 组件中重要的APM(应用性能监控)实现. 预备工作 当您将 SkyWalking 整合到您的 Seata 工程前,请确保后台已经启动 SkyWalking 服务,如果您尚且不熟悉 SkyWalking 的基本使用的话,可先行参考 SkyWalking 快速入门。建议使用 SkyWalking 8.4.0 及以上的版本。 快速上手 Seata 融合 SkyWal

  • 我得到的错误与在Spark SQL中加入大数据帧时丢失洗牌的输出位置相同。建议设置MEMORY\u和磁盘和/或spark。洗牌memoryFraction 0。然而,spark。洗牌Spark中不推荐使用memoryFraction 因此,我的问题是: 在Spark SQL中连接大型数据帧的最佳实践是什么 更具体的问题包括: 如何调整执行器和spark的数量。sql。洗牌分区以实现更好的稳定性/性