我有一个销售点 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);
}
内存使用似乎或多或少是恒定的。所以,我不确定问题是什么。有人可以帮我解决这个问题吗?我尝试自己将对象设置为零。但这似乎并没有改善问题。