Saturday, October 5, 2013

ios how to get CPU usage

As stated, I used the cpuusage UIDevice-hardware method to get to the cpu usage value, but small fluctuations in the data, with the operation of some occupied cpu cpu values ​​will not rise up, online access to information regarding the ios cpu usage rarely are other platforms, you have any methods or ideas where you can share with you, we can discuss my thoughts just now getting each process id, then read each cpu occupied by id usage, but the specific implementation methods have not yet, I hope you have any ideas to share, thank you friends
Reply:
xcode-> open Developer Tool-> Instruments can be selected to monitor the CPU
Reply:
http://hi.baidu.com/_violet_moon/item/c27bcf3d3d1cb3677d034be2

One on ios iPhone / iPad real-time access cpu, memory, hard drives and other usage of the article, try do not know can not be used
Reply:
Upstairs This only gets the memory size has no access to the CPU, but the method should be similar, close
Reply:
LZ question and answer, and no help, no research in this area.

Reply:
4th Floor reply quote:
LZ question and answer, and no help, no research in this area.


Make a note, you can look after yourself, ios CPU access much information
Reply:
iphone developed through unix systems underlying acquisition and system-related hardware information

http://blog.csdn.net/arthurchenjs/article/details/6261776
ArthurChenJS write a blog
Reply:
Upstairs information just get to memory usage.

 
- (Float) cpu_usage
{
kern_return_t kr;
task_info_data_t tinfo;
mach_msg_type_number_t task_info_count;

task_info_count = TASK_INFO_MAX;
kr = task_info (mach_task_self (), TASK_BASIC_INFO, (task_info_t) tinfo, & task_info_count);
if (kr! = KERN_SUCCESS) {
return -1;
}

task_basic_info_t basic_info;
thread_array_t thread_list;
mach_msg_type_number_t thread_count;

thread_info_data_t thinfo;
mach_msg_type_number_t thread_info_count;

thread_basic_info_t basic_info_th;
uint32_t stat_thread = 0; / / Mach threads

basic_info = (task_basic_info_t) tinfo;

/ / Get threads in the task
kr = task_threads (mach_task_self (), & thread_list, & thread_count);
if (kr! = KERN_SUCCESS) {
return -1;
}
if (thread_count> 0)
stat_thread + = thread_count;

long tot_sec = 0;
long tot_usec = 0;
float tot_cpu = 0;
int j;

for (j = 0; j {
thread_info_count = THREAD_INFO_MAX;
kr = thread_info (thread_list [j], THREAD_BASIC_INFO,
(Thread_info_t) thinfo, & thread_info_count);
if (kr! = KERN_SUCCESS) {
return -1;
}

basic_info_th = (thread_basic_info_t) thinfo;

if (! (basic_info_th-> flags & TH_FLAGS_IDLE)) {
tot_sec = tot_sec + basic_info_th-> user_time.seconds + basic_info_th-> system_time.seconds;
tot_usec = tot_usec + basic_info_th-> system_time.microseconds + basic_info_th-> system_time.microseconds;
tot_cpu = tot_cpu + basic_info_th-> cpu_usage / (float) TH_USAGE_SCALE * 100.0;
}

} / / For each thread

kr = vm_deallocate (mach_task_self (), (vm_offset_t) thread_list, thread_count * sizeof (thread_t));
assert (kr == KERN_SUCCESS);

return tot_cpu;
}



This method can get to the percentages, there are fluctuations, but the value is not accurate, and occasionally jumps to more than 100

No comments:

Post a Comment