Damien Lucas
Tech Lead
Architecte
dlucasd
dlucasd_
Damien Lucas
Tech Lead
Architecte
dlucasd
dlucasd_
Ivan Béthus
Tech Lead
ibethus
"Vous avez 3 semaines !"
jmap -dump:[live],format=b,file=<file-path> <pid>
jcmd <pid> GC.heap_dump <file-path>
java -XX:+HeapDumpOnOutOfMemoryError #optionnel : -Xmx1g
Eclipse Memory Analyser
java -XX:StartFlightRecording=duration=200s
JDK Mission Control
- Ajout dans le fichier postgresql.conf :
shared_preload_libraries = 'pg_stat_statements'
- Redémarrage de PostgreSQL
create extension pg_stat_statements;
select pg_stat_statements_reset();
interface CourrierReporting {
String getVille();
String getDestinataire();
}
interface CourrierReporting {
String getVille();
String getDestinataire();
default String getFullDestinataire() {
return getDestinataire().concat(" ").concat(getVille());
}
}
public interface CourrierRepository extends JpaRepository<Courrier, Long> {
Stream<Courrier> getByVille(String ville);
Page<Courrier> getByVille(String ville, Pageable p);
Slice<Courrier> getByVille(String ville, Pageable p);
}
<dependency>
<groupId>io.hypersistence</groupId>
<artifactId>hypersistence-utils-hibernate-63</artifactId>
<version>3.7.3</version>
</dependency>
Les listes, c’est bien…
…les stream, c’est mieux ! (enfin, parfois)
@EnableCaching
public class MaClasseDeConfiguration {
}
@Repository
public interface MonRepository extends JpaRepository<MonEntite, Long> {
@Cacheable("leNomDeMonCache")
List<MonEntite> findByParam(String param);
}
T.HANKS