我是移动质量检查人员。现在我们有一个关于网络响应和UI渲染之间的竞争条件的问题。我们猜测如果UI渲染速度慢于网络响应速度,那么它将崩溃。
我们已经尝试通过使用Charles的地图本地功能来加快网络响应速度。但是持续时间仍然约为20ms。这是我们认为可以加快网络速度的最佳方法。
所以我问是否有任何方法可以减慢iOS,真实设备或模拟器上的UI渲染速度。有没有办法为iOS设置CPU使用率或内存?还是有办法让iOS系统保持较高的CPU /内存使用率?
答案 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并在模拟器上运行该应用程序。