如何让iOS变慢

时间:2018-07-13 02:23:30

标签: ios testing

我是移动质量检查人员。现在我们有一个关于网络响应和UI渲染之间的竞争条件的问题。我们猜测如果UI​​渲染速度慢于网络响应速度,那么它将崩溃。

我们已经尝试通过使用Charles的地图本地功能来加快网络响应速度。但是持续时间仍然约为20ms。这是我们认为可以加快网络速度的最佳方法。

所以我问是否有任何方法可以减慢iOS,真实设备或模拟器上的UI渲染速度。有没有办法为iOS设置CPU使用率或内存?还是有办法让iOS系统保持较高的CPU /内存使用率?

1 个答案:

答案 0 :(得分:1)

如果将许多后台任务添加到应用程序中,则可以执行此任务,这些任务将在CPU和GPU上执行。
此任务应在后台并发线程上执行,并且不与应用程序的主代码交互。
例如,您可以创建NSOperation,它将计算一些值<伪代码>:

    <in the operation's main>
    - (void)main{

       double value = 100000009900.0
       for (int i = 0; i<INT_MAX; i++)
       {
         value = sqrt(value) + rand(time())
       }
    }

并添加操作,这些操作将使用GPU <伪代码>:

<in GPU' operation>
- (void)main{

   CIImage* image = <load image>;
  CIFilter* filter = <some complicated filter>;
  filter.inputImage = image;
  CIImage* result = filter.outputImage;
  CIContext* context = <create context or share same for all operations>

  NSData* imageData = [context JPEGRepresentationOfImage:result colorSpace:NULL options:nil];
  CGImageRef image = [context renderImage];
  if (image)
  {
     CGImageRelease(image);
  }

}

之后,将许多操作添加到队列中。为此,您应该在界面中添加一些按钮。
我了解,这是一个特殊的应用程序,但是如果创建正确,您将获得正确的结果。 (有时我这样做是为了检查内存压力和性能问题)

您还可以使用旧的Mac并在模拟器上运行该应用程序。