Bonjour, je suis débutant en Java & Android, lors du développement de mon application j'ai rencontré un soucis avec les boucles et le garbage collector.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    private List<ContentValues> addObjects(ResultSet rst) throws DaoException, SQLException {
        //Ajout dans la BDD local SQLlite
        List<ContentValues> values = new ArrayList<>();
        ContentValues value = new ContentValues();
        while (rst.next()) {
            value.put("Numero", rst.getInt("Numéro"));
            value.put("AR_Ref", rst.getString("AR_Ref"));
            value.put.....
            .........;
            values.add(new ContentValues(value));  
        }
        return values;
    }
Ce code marche parfaitement mais le new ralentit fortement mon application, en effect à chaque fois le GC vient passer dessus et prend 300ms environ, l’exécution prend 3 minutes ce qui est énorme.
J'aimerai profiter de vos expériences pour optimiser ce code.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
D/dalvikvm﹕ GC_FOR_ALLOC freed 1230K, 5% free 62021K/64839K, paused 377ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1223K, 5% free 62033K/64839K, paused 367ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1222K, 5% free 62044K/64839K, paused 401ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1220K, 5% free 62056K/64839K, paused 412ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1220K, 5% free 62067K/64839K, paused 418ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1285K, 5% free 62080K/64903K, paused 420ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1293K, 5% free 62092K/64903K, paused 428ms
D/dalvikvm﹕ GC_FOR_ALLOC freed 1283K, 5% free 62104K/64903K, paused 420ms
Merci d'avance pour votre aide