- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用浏览器应用程序,在其中我使用UIWebView来打开网页。我使用“内存监视器”运行“仪器”工具。我对文书中使用的术语以及它们为什么很重要感到困惑。请以正当理由解释我的一些问题:
最佳答案
“ Activity 字节”表示“已分配但尚未释放的内存”。这很重要,因为它是“您的应用程序正在使用多少内存”的最容易掌握的度量。
“总字节数”表示“已分配的所有内存,包括已释放的内存”。这用处不大,但会给您一些“堆搅动”的概念。流失会导致碎片化,而堆碎片化可能是个问题(尽管近来有些晦涩。)
“实内存”是尝试区分正在使用多少物理RAM(而不是有效地址空间的多少字节)。这与“ Activity 字节”不同,因为“ Activity 字节”可能包含与当前未分页到物理RAM中的内存映射文件(或共享内存,窗口后备存储或其他)相对应的内存范围。即使您不使用内存映射文件或其他奇异的VM分配方法,系统框架也会使用它们,因此,这种区别对于每个进程始终具有一定的重要性。
编辑:既然您清楚地担心使用UIWebView会导致内存使用问题,所以让我看看能否对此有所了解:
完全使用UIWebView会有一定的内存“价格”(即全局缓存等)。这些包括各种全局字体缓存,JavaScript JIT缓存以及类似的东西。其中大多数将表现为单例:首次使用它们时分配(通过使用UIWebView间接),并且直到过程结束才释放。还有一些可变大小的全局缓存(例如缓存Web响应的缓存; CFURL通常管理这些缓存),但是这些缓存应该由系统管理。如您所见,相对于UIWebView,这些东西的总“权重”是微不足道的。
我对UIKit或WebKit的内部知识一无所知,但是我希望,如果您与做过此事的人进行讨论,他们会回答“为什么使用UIWebView会导致大量内存使用?”的问题。有两个分支:第一个分支是“这是使用UIWebView的入场价格–基本上就像在您的过程中运行整个Web浏览器一样。”第二个分支是“系统自动管理系统框架缓存”,这意味着,例如,CFURL缓存(这是使用UIWebView导致创建的事情之一)由系统管理,因此,如果出现内存警告,则系统框架将负责从这些缓存中逐出东西,以减少它们消耗的内存;您无法控制这些,而只需要相信系统框架就能完成需要完成的工作。 (在系统缓存管理器所做的一切不足以使您积极进取,但您将无法再对其进行更多控制的情况下,这无济于事,因此您需要从另一个角度来解决问题,如果您想知道为什么在取消分配UIWebView之后内存使用量不会减少,这就是您的答案。它在幕后做很多事情,您无法控制。
分配,使用然后再分配UIWebView的期望是净零操作,它忽略了一些非平凡,固有和不可避免的副作用。此类副作用的存在(本身)并不表示UIWebView中存在错误。到处都有这样的副作用。如果要创建一个琐碎的应用程序,除了启动后什么都不做,然后在运行循环旋转一圈后终止,然后在exit()
上设置一个断点,然后查看已分配但从未释放过的内存,那么将会有成千上万个分配。这是在整个系统框架和几乎每个应用程序中使用的非常常见的模式。
这对您意味着什么?这意味着您实际上有两种选择:使用UIWebView并支付内存使用的“准入价格”,或者不使用UIWebView。
关于ios - Xcode仪器: Memory Terms Live Bytes and Overall Bytes (Real Memory) confusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18510239/
我在第一个真正的 iPhone 应用程序上遇到了一些困难,想获得一些关于如何构建它的建议。我正在寻找一些关于创建 UI 组件并将它们链接在一起以创建应用程序流(以编程方式创建 View / Contr
对于一个项目,我有一个聚合数据的查询: SELECT code, SUM(someValue) as summedValueForCode FROM someTable GRO
我对 Java 语言规范中“总体规模”的含义感到困惑: Widening primitive conversions do not lose information about the overall
我有一张 jpg 图片。 我需要知道图像颜色的“总体平均值”。乍一看可以使用图像的直方图(RGB channel )。 在工作中,我主要使用 JavaScript 和 PHP(一点 Python),因
我是生态学家,主要使用 vegan R 包。 我有 2 个矩阵(样本 x 丰度)(参见下面的数据): matrix 1/ nrow= 6replicates*24sites, ncol=15 spec
我听说这应该是可能的,但我无法想象这应该如何工作。 我正在为我的项目使用依赖注入(inject) (autofac)。我和别人一起开发一个项目,调用他的类的方法(我用的是他的汇编)。 然后我得到一个对
我正在与 jenkins 合作,不幸的是我被添加了一个用户作为管理员我忘记了该用户的密码,所以当我尝试与其他用户一起登录时它显示如下图所示。我试图在 config.xml 中将 false 设置为 u
有没有办法让 plm() 为我计算 R2 和总体 R2 并将它们包含在 summary() 输出中? 要阐明我在 R2 之间、总体和内部的意思,请参阅 StackExchange 上的此答案. 我的理
使用 MatBlazor (1.5.4) MatDialog ,我有兴趣将对话框大小固定或设置为总页面的百分比。当前,行为是对话框以其适合内容的大小打开。 我尝试在对话框定义的不同部分添加显式样式,但
我被这个问题困扰,不知道如何解决。 我编写了一个 Shell 脚本,它将通过传递我的私钥使用 Jenkins CLI 调用我的作业。Jenkins 版本是 2.121.1 java -jar jenk
我需要将一些工作负载分配给线程,并并行启动它们,因为它们是独立的。我还想使用 JavaFx 在 ProgressBar 中显示总体进度。这意味着进度条显示到目前为止每个线程完成的总工作。 为了简单起见
我希望能够根据用户完成每个级别的速度对用户进行排名。我希望这是一个整体排行榜,即所有级别的总时间最短。 这里的问题是,每完成一个级别,总完成时间就会增加。但我想确保排行榜考虑到这一点,这样完成 10
我在我的 iOS 应用程序中收到一些内存警告,因此我正在运行 Instruments 以查看分配情况。我应该查看 * All Allocations * Live Bytes 还是 Overall B
我正在使用 Instument 的 ObjectAlloc 工具来尝试了解我的应用程序 (iPhone) 正在执行的内存以及它执行的时间和地点。 我真的很想对这些统计数据进行基本解释: 实时字节 #生
当我尝试使用 @lob 字符串持久化实体时出现错误。我记得那部分代码运行良好,但我根本不记得更改过它。我很困惑。这是我遇到的错误: ERROR 30 04 12 23:50:31 [org.hiber
首先让我说我是 javascript 的新手,刚刚开始。这可能是一个广泛的问题,但我真的很想得到一个答案,这样我就能理解整个概念/方法。我正在阅读这本名为《更敏捷测试》的书,其中有一段是关于自动化测试
我有一个不属于任何其他组件的组件。当用户点击链接时,页面会跳转到该页面,这是使用react-router实现的。 view detail 而且我找不到将应用程序的状态传递给该组件的方法,例如:我想知
有没有办法不用轮询的方法来获取系统CPU使用率?如果我进行民意调查,我可以从顶部获取详细信息,但这是最佳的吗?当 CPU 使用率发生变化时是否会发出任何系统范围的信号? 最佳答案 在 linux 上,
我们正在努力解决一个可能比我想象的更简单的问题。我只是卡住了。 问题包括定义一个 DAX Measure那个动态 仅计数 第一 期间访问量每位患者 .访问次数为 不是第一 期间必须是分配的空白()值(
(我的网站有 110Kb 的图像、一个旋转器、2 个谷歌字体) 我的 WordPress 网站发出了 30 个 http 请求,加载时间为 7 秒,总页面大小 220Kb。通过更改各种插件,我成功地将
我是一名优秀的程序员,十分优秀!