【问题标题】:Processor count reliability处理器数量可靠性
【发布时间】:2013-04-01 21:10:30
【问题描述】:

我在做一款安卓游戏,单核手机如 Galaxy S 和双核 Galaxy S2 的性能差距堪比白天和黑夜。因此,我没有为单核和双/四核制作不同的版本,而是考虑使用设备的处理器数量来关闭和打开某些图形功能。

但是获取处理器数量的可靠性如何?一些单核手机是否具有像英特尔超线程这样的线程,将一个核心显示为两个?还是有些双核手机比 Galaxy S2 慢很多?

【问题讨论】:

  • 如果用户觉得游戏运行太慢,为什么不给他们一个选项来禁用花哨的效果?
  • 1.据我所知,没有采用英特尔 HT 技术的芯片。 2. 是的,有些甚至是双核芯片,速度真的很慢。
  • 我认为有些手机也使用核心停放,基本上是在电池电量不足或满足其他一些条件时禁用其中一个核心。我在笔记本电脑上遇到过类似的问题,核心停放使核心温度实用程序因缺少核心而惊慌失措。
  • @Esa 可能没那么慢,但是各种双核 SoC 的差别还是很大的,所以不能靠核心数,建议靠整体性能。
  • 还要考虑到大多数人在后台运行的多个应用程序会占用 CPU 处理能力(音乐、Facebook 等)。因此,依靠核心数量并不总能反映您实际获得的处理能力。

标签: android unity3d processor hyperthreading


【解决方案1】:

虽然我认识到您在检查内核和自动调整设置的想法背后的好意,因此用户不必自己调整设置并提高性能,但实际上它不会起作用。

这是因为有太多的设备和角落案例需要覆盖。例如:

  • 某些多核设备会有核心停放,并且可能无法被您使用的任何核心检测检测到。
  • 一些单核设备可能有也可能没有超线程,但不会显示为多核。
  • 如果用户的手机处于省电模式,您仍会检测到多个内核,但无法识别它们以有限的容量运行。

我相信还有很多其他的例子。关键是,为了自动调整应用程序的设置,覆盖大部分/所有这些情况可能是一场噩梦,特别是考虑到一个相对简单的解决方案:在应用程序启动时询问用户他们想要什么设置,然后可以随时轻松调整这些设置。

有时最好把负担放在用户的腿上,特别是如果他们几乎不需要付出任何努力,而开发人员会付出更多的努力来做到这一点。祝你好运!

【讨论】:

    【解决方案2】:

    图形效果应该由 GPU 绘制,而不是 CPU。

    【讨论】:

    • 不过,您通常无法在 GPU 中完成所有计算 - 您尝试执行的次数越多,CPU 负载也会随之增加。
    • 有些效果对 CPU 的压力大于对 GPU 的压力。例如在移动设备上制作阴影,确定阴影位置和大小的光线投射比绘制 blob 本身更昂贵。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2011-02-09
    • 2013-01-23
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多