FBMemoryProfiler

iOS内存监测工具
授权协议 BSD
开发语言 Objective-C
所属分类 开发工具、 代码管理分析/审查/优化
软件类型 开源软件
地区 不详
投 递 者 殳俊晤
操作系统 iOS
开源组织 Facebook
适用人群 未知
 软件概览

FBMemoryProfiler是Facebook开源的一款用于分析iOS内存使用和检测循环引用的工具库。

手机设备的内存是一个共享资源。应用程序可能会不当的耗尽内存、崩溃,或者遭遇大幅度的性能降低。当分配了一块内存,并设置了对象之后,如果在使用完了之后忘记释放,这就会发生内存泄露。这意味着系统是无法回收内存并交予他人使用,这也最终意味着我们的内存将会逐渐耗尽。

在Facebook,有很多工程师在代码库的不同部分上工作。这不可避免的会发生内存泄露。当发生内存泄露之后,工程师需要尽快找到并修复它们。一些工具已经可以找到内存泄露,但是它们需要大量的人工干预。自动化可以在不需要更多开发者的情况下,更快的找到内存泄露。为了解决这个问题,Facebook做了一套工具来自动化的处理和修复代码库中的一些问题,这个工具就是FBMemoryProfiler。

这个库显示FBAllocationTracker和FBRetainCycleDetector怎么能一起合作,以及如何在真正的应用程序中使用。

它采用FBAllocationTracker收集有关对象的信息。它支持 generations 保留周期检测 。

这里是一个小的演示(项目提供实例目录

  • FBMemoryProfiler 是Facebook开源的一款用于分析iOS内存使用和检测循环引用的工具库。 脑补:http://www.cocoachina.com/ios/20160421/15983.html   http://www.tuicool.com/articles/fIfmamR   转载于:https://www.cnblogs.com/qiyer/p/5503564.html

 相关资料
  • 我们正在监视jvm指标,如堆、元数据库、线程和gc计数,我们能够将这些指标推送到像Prometheus一样的monitorng服务器。类似地,我们希望跟踪Java本地内存指标(jcmd vm.sumary的输出)。我的问题是,是否可以通过调用任何jvm运行时类来获得这些度量?

  • 多谢了,帕拉克·沙阿

  • 问题内容: 如何在没有root特权的情况下检测到chroot监狱?假设一个标准的BSD或Linux系统。我想到的最好的办法是查看“ /”的inode值,并考虑它是否相当低,但是我想使用一种更准确的检测方法。 仅浏览文件系统是不够的,因为复制/ boot和/ dev之类的东西来欺骗被监禁的用户并不困难。 对于Linux系统,检查/ proc中的意外值是合理的,但是首先不支持/ proc的系统呢? 问

  • 问题内容: 我目前正在测试将密钥插入数据库Redis(在本地)中。我有超过500万个密钥,而且我只有4GB的RAM,所以一时我达到了RAM的容量并交换了数据(并且我的PC掉了)。 我的问题是:如何在具有Redis数据库的计算机上监视内存使用情况,并以此方式发出警报,不再在Redis数据库中插入某些密钥? 谢谢。 问题答案: 关于内存使用情况,建议您查看redis.io 常见问题解答以及有关将red

  • 本文向大家介绍python实现内存监控系统,包括了python实现内存监控系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现内存监控系统的具体代码,供大家参考,具体内容如下 思路:通过系统命令或操作系统文件获取到内存信息(linux 内存信息存在/proc/meminfo文件中,mac os 通过命令vm_stat命令可以查看) 并将获取到信息保存到数据库中,通过w

  • vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可实时动态监视操作系统的虚拟内存、进程、CPU活动。 10.1. vmstat的语法   vmstat [-V] [-n] [delay [count]] - -V表示打印出版本信息;- -n表示在周期性循环输出时,输出的头部信息仅显示一次;- delay是两次输出之间的延迟时间;- count是指按照这个时

  • 物理内存探测 物理内存的相关概念 我们知道,物理地址访问的通常是一片 DRAM,我们可以把它看成一个以字节为单位的大数组,通过物理地址找到对应的位置进行读写。但是,物理地址并不仅仅只能访问 DRAM,也可以用来访问其他的外设,因此你也可以认为 DRAM 也算是一种外设,物理地址则是一个对可以存储的介质的一种抽象。 而如果访问其他外设要使用不同的指令(如 x86 单独提供了 in 和 out 等指令

  • 我在Azure中有一个应用程序服务。它显示了两个称为“平均内存工作集”(Average Memory Working Set)和“内存工作集”(Memory Working Set)的度量。现在,内存工作集被定义为进程中线程最近接触到的内存页集。门户中显示的这两个图形如下所示: 现在,我有三个问题: > 如何找出我的服务的专用最大内存是多少?一旦达到限制会发生什么? 内存工作集是进程中的线程最近接