J'ai ce programme où il a une fonction récursive semblable à ceci:création Java de nouvelle série trop lent
public static void lambda(HashSet<Integer> s){
if(end(s)){
return;
}
for(int i=0;i<w;i++){
HashSet<Integer> p = (HashSet) s.clone();
p.addAll(get_next_set());
do_stuff_to(p);
lambda(p);
}
}
Ce que je fais est l'union tous ensemble avec l'ensemble de l'art. Et lancez lambda sur chacun des syndicats. J'ai exécuté un profileur et trouvé l'opération c.clone() a pris 100% du temps de mon code. Y a-t-il un moyen d'accélérer cela considérablement?
"100% du temps de mon code". Vraiment? Êtes-vous sûr que cette mesure inclut tout ce que get_next_set et do_stuff_to font? Et combien de secondes d'horloge murale ces 100% représentent-ils? Est-ce vraiment trop lent pour vos besoins? – Thilo
aussi .clone() n'est probablement pas la meilleure façon de le faire, il est presque garanti de ne pas faire ce que vous pensez qu'il est en train de faire. indice: ce n'est pas réellement faire des copies des objets dans l'ensemble, seulement des copies des références. –