0

我有一个销售点 iPad 应用程序,它非常适合最初的几笔交易。在大约 10 次背靠背交易之后,应用程序变得非常缓慢。UI 需要一秒钟以上的时间来响应触地事件。因此,当我终止应用程序并重新启动它时,它再次完美运行。我使用以下函数检查免费 VM 响应时间似乎随着每个新事务呈指数增长,最终应用程序变得无法使用。

-(void)print_free_memory
{
        mach_port_t host_port;
        mach_msg_type_number_t host_size;
        vm_size_t pagesize;

    host_port = mach_host_self();
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
    host_page_size(host_port, &pagesize);

    vm_statistics_data_t vm_stat;

    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) !=    KERN_SUCCESS)
         NSLog(@"Failed to fetch vm statistics");

/* Stats in bytes */
    natural_t mem_used = (vm_stat.active_count +
                      vm_stat.inactive_count +
                      vm_stat.wire_count) * pagesize;
    natural_t mem_free = vm_stat.free_count * pagesize;
    natural_t mem_total = mem_used + mem_free;
  //      [self displayAlert:@"Memory" message:[NSString stringWithFormat:@"used: %u   free: %u total: %u", mem_used, mem_free, mem_total]];
    // NSLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);

}

内存使用似乎或多或少是恒定的。所以,我不确定问题是什么。有人可以帮我解决这个问题吗?我尝试自己将对象设置为零。但这似乎并没有改善问题。

4

1 回答 1

0

谢谢大家的回复。感谢你们,我能够找出减速的​​原因。以下是时间分析的结果。

有这个方法

运行时间自身符号名称

250185.0ms 81.3% 90.0 -[tcCreditCardViewController blinkT]

我已将此设置为由 NSTimer 触发,并且在添加新子视图后没有使计时器无效。一旦我这样做了,应用程序就会像以往一样顺利运行。

于 2013-08-19T16:01:50.223 回答