¿Por qué este JSON de análisis cada vez más eficiente?

ColonD:

Tengo una función para analizar JSONen el androide. Yo uso org.jsonpara mi análisis.

Es algo como esto:

class ClassName {

public static ArrayList<DataObjectClass> parseResponse(String response){

    JSONObject responseObject = new JSONObject(response);
    if(responseObject.has("someArray")){
        JSONArray someArray = responseObject.getJSONArray("someArray");
        // etc... etc... and i do logic
        }
    }
    return new DataObjectClass(params...)
}

Ahora lo cronometré mi análisis de principio a fin, y cada vez que llamo a la función de nuevo el tiempo de análisis se reduce (a menos que salir de la aplicación y vengo a)

Revisé el JSONTokenercódigo y JSONObjectel código, pero no puedo encontrar ningún código para el almacenamiento en caché. Cuando sucede esto y cómo puedo apagarlo (para propósitos de prueba)

TheKarlo95:

Podría tener algo que ver con la forma en ART (Andorid tiempo de ejecución) ejecuta el código.

A partir de documentos :

Android Runtime (ART) incluye un compilador Just-In-Time (JIT) con el código de perfiles que continuamente se mejora el rendimiento de las aplicaciones de Android, ya que correr. en curso antes de tiempo el JIT compilador complementos de ART (AOT) compilador y mejora el rendimiento en tiempo de ejecución, ahorra espacio de almacenamiento, y acelera las actualizaciones de aplicaciones y del sistema. También mejora el compilador AOT evitando la ralentización del sistema durante actualizaciones de la aplicación automáticas o recopilación de aplicaciones durante más de-the-air (OTA) actualizaciones.

Aunque JIT y AOT utilizan el mismo compilador con un conjunto similar de optimizaciones, el código generado puede no ser idénticas. marcas JIT uso de información de tipo en tiempo de ejecución, puede hacer mejor inlining, y las marcas sobre el reemplazo de la pila (OSR) compilación posible, todo lo cual genera código ligeramente diferente.

Esto significa que cada vez que se ejecuta ART código que analizarán cómo funciona y cómo se puede mejorar eso. Cuando salga de su aplicación para todos esos datos se pierde y comienza de nuevo. Esto es común en todas las aplicaciones de JVM (Java Virtual Machine).

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231637&siteId=1
Recomendado
Clasificación