Skip to content

Instantly share code, notes, and snippets.

@diegogaulke
Created January 9, 2015 13:23
Show Gist options
  • Save diegogaulke/140ddb153148432df4fe to your computer and use it in GitHub Desktop.
Save diegogaulke/140ddb153148432df4fe to your computer and use it in GitHub Desktop.
Alocação de recursos de maneira performática
// Alocar recursos apenas quando eles serão realmente utilizados.
// Isso ajuda a GC a trabalhar melhor, pois repassa trabalho para ela apenas quando necessário,
// pois o recurso de memória e processamento só é alocado quando for necessitado.
// Também diminui o tempo de 'lock' em algumas rotinas e conexões.
// Ruim
Session session = getSession(); // criou session aqui...
try {
StringBuillder sb = new StringBuilder();
sb.append("select * from tabela ");
sb.append("where id = ");
sb.append(id);
// session utilizada apenas aqui...
final Query q = session.createSQLQuery(sb.toString());
// ...
} catch (Exception e) {
// ..
} finally {
// ...
}
// Bom
Session session = null;
try {
StringBuillder sb = new StringBuilder();
sb.append("select * from tabela ");
sb.append("where id = ");
sb.append(id);
// session utilizada apenas aqui, então é alocada aqui
session = getSession();
final Query q = session.createSQLQuery(sb.toString());
//...
} catch (Exception e) {
// ..
} finally {
// ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment