Cómo detectar la velocidad de la CPU android?
Me gustaría detectar la rapidez con que el dispositivo en el que se ejecuta mi aplicación Android.
¿Hay alguna API para hacerlo en Android? ¿O tengo que compararlo por mí mismo?
- Cuál es el mejor rendimiento Wise: setOnClickListener VS android: onclick = "onClick"
- Problema de rendimiento en la fuente personalizada TextView
- ¿Por qué mi aplicación comienza increíblemente lento (10s +) en la primera ejecución, mostrando sólo pantalla blanca en Android 5.0?
- ¿Por qué WebView es mucho más rápido que un TextView?
- Rendimiento de ListView abismal en Android ICS
Si el dispositivo tiene CPU lenta me gustaría desactivar algunas operaciones que consumen mucho tiempo como animaciones o limitar el número máximo de solicitud HTTP simultánea.
- Cómo leer '/data/anr/traces.txt' en samsung S2
- ¿Los activos / iconos de Android LDPI todavía son necesarios?
- GetItem vs. getItemAtPosition
- La compilación de Android es lenta (con Eclipse)
- Android - Declarativa vs interfaz de usuario programática
- Dibujo (filtrado) 100k + puntos a MapView en Android
- Rendimiento de Android xml vs java layouts
- Android.os.MessageQueue.next ocupando la pluralidad de tiempo exclusivo - ¿es este comportamiento normal?
La mejor manera de hacerlo en mi opinión es monitorear el tiempo que toma para hacer estas acciones. Si está tomando demasiado tiempo, entonces el sistema es demasiado lento y puede desactivar funciones de fantasía hasta que sea lo suficientemente rápido.
Leer la velocidad de la CPU u otras especificaciones e intentar juzgar la velocidad del sistema es una mala idea. Los futuros cambios de hardware podrían hacer que estas especificaciones carezcan de sentido.
Mira el Pentium 4 vs el Core 2, por ejemplo. ¿Cuál es la CPU más rápida, un Pentium 4 de 2,4 GHz o el Core 2 de 1,8 GHz? ¿Es un Opteron de 2 GHz más rápido que un Itanium 2 de 1,4 GHz? ¿Cómo vas a saber qué tipo de CPU ARM es realmente más rápido?
Para obtener las calificaciones de velocidad del sistema para Windows Vista y 7 Microsoft realmente marca la máquina. Este es el único método a medio camino para determinar las capacidades del sistema.
Parece que un buen método es usar SystemClock.uptimeMillis ().
Intente leer /proc/cpuinfo
que contenga información de la CPU:
String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; ProcessBuilder pb = new ProcessBuilder(args); Process process = pb.start(); InputStream in = process.getInputStream(); //read the stream
Por favor, consulte el siguiente enlace que proporcionará los datos relacionados con la CPU
Basado en la solución @dogbane y esta respuesta , esta es mi implementación para obtener el valor de BogoMIPS:
/** * parse the CPU info to get the BogoMIPS. * * @return the BogoMIPS value as a String */ public static String getBogoMipsFromCpuInfo(){ String result = null; String cpuInfo = readCPUinfo(); String[] cpuInfoArray =cpuInfo.split(":"); for( int i = 0 ; i< cpuInfoArray.length;i++){ if(cpuInfoArray[i].contains("BogoMIPS")){ result = cpuInfoArray[i+1]; break; } } if(result != null) result = result.trim(); return result; } /** * @see {https://stackoverflow.com/a/3021088/3014036} * * @return the CPU info. */ public static String readCPUinfo() { ProcessBuilder cmd; String result=""; InputStream in = null; try{ String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; cmd = new ProcessBuilder(args); Process process = cmd.start(); in = process.getInputStream(); byte[] re = new byte[1024]; while(in.read(re) != -1){ System.out.println(new String(re)); result = result + new String(re); } } catch(IOException ex){ ex.printStackTrace(); } finally { try { if(in !=null) in.close(); } catch (IOException e) { e.printStackTrace(); } } return result; }
- ¿Es Dalvik aún más hambriento de memoria que HotSpot en términos de tamaños de objeto?
- BitmapFactory.decodeResource devuelve un mapa de bits mutable en Android 2.2 y un mapa de bits inmutable en Android 1.6