针对平台优化的APP,需要根据具体的CPU型号来将一些任务重,占CPU资源多的线程绑定到CPU上处理能力更强的大核上,可参考如下代码:
1、将整个进程中的各个线程绑定到指定CPU核
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <sched.h>
#include <ctype.h>
#include <pthread.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <dirent.h>
#include <grp.h>
#include <inttypes.h>
#include <pwd.h>
#include <string.h>
#include <jni.h>
#include <time.h>
#include <poll.h>
#include <errno.h>
#include <fcntl.h>
#include <cutils/log.h>
#include <sys/stat.h>
#include <cutils/properties.h>
JNIEXPORT int JNICALL Java_com_google_vrtoolkit_cardboard_GLSurfaceView2_BindThreadsToCpu45(JNIEnv* env, jobject obj){
DIR *task_dir;
struct dirent *tid_dir;
int pid,tid;
int ret;
char filename[64];
ALOGD("BindThreadsToCpu45 : Current platform