首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >macOS应用程序在M1和Intel MacBook Pro中的不同内存使用

macOS应用程序在M1和Intel MacBook Pro中的不同内存使用
EN

Stack Overflow用户
提问于 2021-02-14 17:47:53
回答 1查看 797关注 0票数 2

我有一个x86_64 macOS应用程序,根据Activity,它使用35到50 of的内存与英特尔MacBook Pro。当我在M1 MacBook Pro和Rosetta一起运行同一个应用程序时,它在Activity中显示了2.5到3倍的内存。

然后,我将M1中的应用程序更新为x86_64和arm64,并再次运行。在英特尔MacBook Pro中,它在活动监视器中使用40到60 40。在M1中,Xcode仍然显示内存报告和活动监视器增加了3倍。

在M1中,我从内存报告中单击了仪器中的配置文件,它显示了系统库中最大的堆栈跟踪,特别是这个:

46 AppKit 183.46 MB +NSBundle(NSNibLoading)加载NSBundle:owner:

查看图像和调用树,一直到mmap

然而,当我再次尝试在我的M1中分析应用程序时,它显示的是常规的35-50 M1内存使用情况,仅此而已。NSBundle(NSNibLoading) loadNibNamed:owner:并没有像上面那样占用所有内存。以下是一幅图片:

这个应用程序唯一的图形是一些带有一些定制绘图核心图形代码的故事板。我在大苏尔11.2号和Xcode 12.4号。

我对使用仪器内存的理解是基本的,所以我的问题是:

  1. 在M1和Intel之间以及从内存报告中运行的仪器和仪器之间的不同内存使用情况下,会发生什么?
  2. 为什么所有的内存都被分配到这个NSBundle(NSNibLoading) loadNibNamed:owner:]?
  3. 如何减少M1的内存使用量?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-02-15 00:41:19

如果您想查看应用程序正在使用多少内存,请查看分配工具中所有堆分配类别的Persistent列。请注意,此类别不包括纹理内存。

要更容易地找到分配内存最多的代码,请单击“仪器”窗口底部的“呼叫树”按钮,然后选择“反向调用树”和“隐藏系统库”复选框。下面的教程详细介绍了如何使用仪器来测量内存使用情况:

用仪器测量应用程序的内存使用量

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66198308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档