10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

iOS/MonoTouch 有了新的垃圾回收器和内存分析器

2012 年 2 月 21 日

针对 iOS 的 MonoTouch 目前支持了分代式垃圾回收器(generational garbage collector)SGen。直到不久之前,Sgen 还只是完整版本 Mono 中的一个实验性部分。伴随着垃圾回收器一同到来的,还有一个为 iOS 准备的内存分析器(Memory Profiler),它可以从 MonoDevelop 集成开发环境中访问到。

分代式垃圾回收器 Sgen 取代了 Mono 中传统的 Boehm 垃圾回收器。虽然 Sgen 预计会有更好的性能,但其保守式扫描仍然会给它带来一些阻碍。预计将来 Sgen 会切换到精确的堆栈标记系统,这样应当可以大幅度减少产生的内存碎片。

iOS 分析器支持两种模式,默认模式是堆分析模式,在该模式中内存快照可以根据需要或者触发器进行采集,而该触发器可以设置成一定数量的垃圾收集器周期或者基于时间的时间间隔。此外,该分析器还包含了一些标准工具,如对比快照和查找内存中的对象位置。

性能分析支持统计抽样,以及精确性虽佳但速度不足的进入 / 离开事件记录。统计抽样采集应用程序快照,并根据每个方法被采集器抓取的频度对它们的速度进行评估。从字面上看,进入 / 离开事件记录就是在函数每次开始或完成时记录一条日志。它虽然提供了时间花费的完整记录,但会带来严重的性能开销。这种模式同样能够捕获与对象分配相关的堆栈跟踪。

MonoDevelop 2.8.5 和 MonoTouch 5.1.1 都规定使用该工具。而对于个别项目,必须激活调试、分析和 SGen 垃圾回收器选项。

查看英文原文: A New Garbage Collector and Memory Profiler for iOS/MonoTouch

2012 年 2 月 21 日 07:121174
用户头像

发布了 125 篇内容, 共 30.1 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

和邓小平、基辛格“谈笑风生”的世界第一女记者:奥琳亚娜·法拉奇

赵新龙

记者 编辑 采访 法拉奇

浅析 Cocoapods-Packager 实现

Edmond

ruby ios CocoaPods binary packager

经济大萧条对我的启示

Neco.W

创业 自我管理 职场 自我提升

Hadoop集群搭建-05安装配置YARN

虚拟世界的懒猫

hadoop

Arthas安装及基本用法

编程随想曲

Java

选赵敏还是选小昭,这可真是个问题 | Decision Tree

张利东

Python 学习 算法 决策树

如何优雅滴在手机上跑Python代码

王坤祥

Python 移动应用 手机编程

Netty 源码解析(四): Netty 的 ChannelPipeline

猿灯塔

【终于解决】ubuntu19安装nvidia驱动后屏幕亮度默认最亮不可调节

虚拟世界的懒猫

ubuntu 英伟达

配置微软Azure大数据HDInsight云集群

虚拟世界的懒猫

microsoft 大数据 微软 azure hdinsght

怎样算是一个好的开发者?

水滴

开发者

安装VMware16兼容Hyper-v+WSL2+Docker+解决0x80370102报错

虚拟世界的懒猫

Docker vmware vm hyper-v WSL2

跬步贴|5分钟搞定缓存击穿问题

架构师跬步营

“我代码写完了,QA可以测了。”

蔡建斌

Scrum 敏捷 质量管理 测试

说出来就不灵啦

伯薇

糊涂 活在当下 享受状态 生活状态 观察者

南丁格尔科普

小匚

多云的一点思考

HU

把成功过成自己的生活

子铭

成功学 生活状态

消息队列Kafka - acks参数

Java收录阁

kafka

MySQL中order by语句的实现原理以及优化手段

天堂

Java MySQL 性能优化

Hadoop集群搭建-04安装配置HDFS

虚拟世界的懒猫

hadoop

我愿沉迷于学习,无法自拔(一)

孙瑜

深度思考 个人成长

下一代存储NVMe over Fabrics

HU

Day 47|Week 07-5 曾国藩家书|问学篇-学问何处何时都可做

熊小北同学

学习来应对创业的未知

Neco.W

创业 重新理解创业

利用Translate ToolKit 2.5.0 API构建Flask web app

虚拟世界的懒猫

Python nginx flask uwgsi translate

你真的理解 Java 的基础数据类型吗

Rayjun

Java

如何写作一本书(2):前言与正文

英子编辑

技术 写作

神经网络的激活函数为什么要使用非线性函数

王坤祥

神经网络 激活函数

Java并发编程系列——锁

孙苏勇

Java Java并发 并发编程 多线程

从数据闭环谈微服务拆分

松花皮蛋me

微服务

iOS/MonoTouch有了新的垃圾回收器和内存分析器-InfoQ