- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一款 tvOS 应用。这是我的第一个原生 (Swift) 应用程序。该应用程序将是一个数字标牌应用程序,在事件期间或公司办公室使用。与 iOS/tvOS 上的典型应用程序相比,一个很大的不同是它需要几乎 24/7 全天候运行,因此内存是这个应用程序的一个重要主题。最小的泄漏最终会导致应用程序崩溃。
该应用不断循环播放一组全屏幻灯片。在屏幕底部有一个包含 10 篇文章的滚动条(每 10 秒刷新一次 - 现在正在开发中)。下面是天气幻灯片的屏幕截图,以了解一下。
目前该应用程序在一段时间后崩溃,我很确定我已经将它缩小到代码组件(当禁用它时,该应用程序可以运行数天)。如果我在 Instruments 中使用“Leaks”预设,我会得到以下结果: 看起来它正在泄漏 Article 实例。我每 10 秒重新创建一次 Article 实例,并将它们提供给 ticker 组件。我认为这就是新实例每大约 10 秒泄漏一次的原因。
在我开始使用 Instruments 中的“Leaks”预设之前,我使用了“Allocations”预设,而使用它对我来说一切都很好。但我可能误读了结果……
使用分配: 我读这篇文章的方式是,目前内存中存在 10 个 Article 实例,还有 31 个已经存在但现在已清理 - 所以我很安全。
但应用程序仍然崩溃。
我读了很多关于保留周期的文章,在我认为应该的地方实现了 weak/unowned。
所以我的问题与其说是关于代码,不如说是关于如何读取这些数据,泄漏在这种情况下意味着什么,以及为什么我认为这些“泄漏”不是分配中的持久对象 窗口?
(测试在多个设备+模拟器上完成)
最佳答案
如果您看到 Instruments 中的内存使用量稳定增加(即大约 n GB/分钟或小时),这是一个很好的迹象,表明正在创建对象,但没有释放对象。你对弱变量和无主变量的暗示让我认为你知道这一点,但你可能没有找到泄漏的所有来源。我建议在 Instruments 中进行几代总结,并查看堆分配中的特定类/对象。您的问题类别数量将稳步增加,并且可能永远不会减少。尝试从那里调试问题。
至于“泄漏”在此上下文中的含义,它始终表示:您的计算机未释放内存资源。它可能看起来不同,因为我们习惯于将泄漏视为以更快的速度吞噬内存的东西(例如在四核上运行的无限循环,或其他东西),但这种泄漏实际上是相同的事物;你的速度比较慢。
关于ios - 仪器:泄漏和分配 (tvOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41979258/
两部分问题: 首先,Apple TV 是否在 sleep 时在后台运行应用程序事件?我认为情况会是这样,因为 Apple TV 不依赖电池。 其次,如果不是这种情况,我将如何覆盖它以保持应用程序运行并
当我们在 tvOS 应用商店浏览应用程序并选择一个应用程序时,应用程序商店将显示一个主题图像作为所选应用程序的背景,我在 Xcode tvOS 项目中玩,但找不到可以为我的 tvOS 设置这样背景的地
我试图覆盖在 tvOS 上进行焦点更改时播放的声音,但我似乎找不到任何表明这是否可能的信息。我稍微浏览了一下 Apple 文档,并查看了一些声音 API,但似乎都不合适。有人知道这是否可能吗?如果可能
我收到以下错误: ERROR ITMS-90528: "Invalid Image Asset. The image asset 'App Icon - Small' in 'Payload/Proj
当我们接收到触摸时,即使我们按下触摸屏的右下角,触摸也会从触摸屏的中心开始(x 960 y 540)。 我们如何在远程触摸面板上获取绝对按下位置 - 左上角为 0 0,右下角为 1920 x 1080
与 UIButton , tvOS 产生 UIControlEvents.PrimaryActionTriggered (不是 .TouchUpInside ,就像在 iOS 上那样)当按钮获得焦点并
由于 tvOS 中不提供 UIDatePicker,所以向用户询问日期/时间有什么用?是否有一个新的类来代替 UIDatePicker ? 谢谢 最佳答案 由于 Apple 没有为 tvOS 提供日期
我知道,SwiftUI 目前处于测试阶段,但我想确保正确使用 focusable。 实际上,当我在列表中向下滚动时,焦点项目会在列表向下滚动时跳过 3 或 4 行(向上滚动方向即可)。 您可以在 b4
我已经设置并显示了一个基本的 MenuBarTemplate。 如何对用户的菜单选择使用react并加载适当的内容模板? 最佳答案 在 menuItem标签包括 template属性指向要加载的模板和
如果我通过蓝牙将 Siri Remote 连接到 MacBook,然后运行 tvOS 模拟器,它会检测运动事件吗? 最佳答案 是的,来自 Siri Remote 加速计的运动事件可用于模拟器。 但
我没有新的 Apple TV,但正在使用模拟器为其制作游戏原型(prototype)。不幸的是,正如 tvOS 文档所示,我似乎无法让 GCController 将 Siri Remote 列为可用
对于 Apple TVOS,使用 TVML 比自定义应用程序(基于媒体的应用程序而不是游戏)有什么优势吗?从我从苹果文档中读到的内容来看,我无法找出任何这样的优势(尽管它主要谈论 TVML/TVJ)。
我最近开始使用 TVML/TVJS,但不确定如何继续处理以下问题。 当前的问题是在渲染页面时在同一页面上使用多个模板,即我想在 ListTemplate 上添加 MenuBarTemplate 等。
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 9 个月前关闭。 Improve t
是否可以在 tvOS 应用程序中同时使用 native View / Controller 和 TVML?似乎使用 TVML 需要您设置一个“应用程序 Controller ”而不是普通的 View
是否可以在 tvOS 应用程序中同时使用 native View / Controller 和 TVML?似乎使用 TVML 需要您设置一个“应用程序 Controller ”而不是普通的 View
iOS 企业应用程序能够使用 list 文件在网络上分发。 tvOS 可以以类似的方式分发吗?我知道 tvOS 没有网络浏览器,但我想知道是否有办法将文件空投到 Apple TV 上以安装内部 tvO
我正在尝试通过 iTunes Connect 提交 tvOS 应用程序,每次我尝试时都会收到以下消息: Invalid Toolchain. New apps and app updates must
游戏 Controller 按钮B默认情况下,退出应用程序并导航回 tvOS 主屏幕。起初我认为这很直观,但很快意识到这就是 Nimbus MENU 按钮( Controller 的中间部分)的用途,
我有一个包含 2 个目标的 Xcode 项目:一个用于 iOS,一个用于 tvOS。我正在使用以下命令行命令来构建它: xcodebuild -workspace "/Users/xxx/Code/p
我是一名优秀的程序员,十分优秀!