23
La théorie
Parlons un peu de SEDA…
Bon encore un vague acronyme…Ça veut dire quoi au fait ? Staged Event Driven Architecture.
OK, encore un nouveau paradigme dans la mouvance DDD, TDD, MDA … ? Ben pas vraiment nouveau en fait, ça fait 10 ans que ça existe et c’est Matt Welsh qui lance le mouvement dans la [...]
25
Introduction
Une architecture SOA a pour principe d’exposer un ensemble de services à destination des utilisateurs. Ces services peuvent éventuellement être relayés par ces mêmes utilisateurs qui peuvent les décorer de nouvelles fonctionnalités. Un des facteurs critique de ce genre d’architecture est la «scalabilité». C’est à dire que le système doit pouvoir répondre linéairement à une [...]
21
The Java Virtual Machine (JVM Short, French JVM), well known to Java developers, can interpret and execute the bytecode. The interest of the JVM is to enable the portability of languages it supports, ie, it allows them to operate on any platform.
How it works exactly?
The different memory areas
Here is an overview of JVMs (Sun HotSpot):
We [...]
20
La Java Virtual Machine (abrégé JVM, en français machine virtuelle Java), bien connu des développeurs Java, permet d’interpréter et d’exécuter le bytecode. L’intérêt de la JVM est de permettre la portabilité des langages qu’elle supporte, c’est à dire qu’elle permet leur fonctionnement sur n’importe quelle plateforme.
Comment elle fonctionne précisément ?
Les différentes zones mémoires
Voici l’aperçu d’un [...]
12
Le principe de l’architecture REST repose sur l’utilisation du protocole http en tirant partie de son enveloppe et de ses en-tête sans ajout de surcouche. Ce paradigme d’architecture se veut parfaitement stateless et laisse donc le soin au client de gérer les sessions (cf. http://fr.wikipedia.org/wiki/Representational_State_Transfer)
Dans cet article nous présupposons que ce type architecture est en [...]
08
What is a memory leak ?
A « memory leak » (cf. http://en.wikipedia.org/wiki/Memory_leak) is a situation when program is unable to release memory it has acquired. It happens when objects are hard referenced by other objects so that JVM can’t release them.
Example
public class MemoryLab {
//a collection (a business cache for example)
static HashSet<Integer> aCache = new HashSet<Integer>();
public static [...]
01
Quelques clics sur Wordpress et hop un nouveau blog voit le jour.
Maintenant il va falloir alimenter le nouveau venu avec quelques articles.
L’objectif sera de présenter quelques tutoriauxs, et de faire part de réflexions autour de l’actualité Java EE.
A bientôt !
01
Rendez-vous sur le site du paris JUG pour vous inscrire: http://www.parisjug.org/xwiki/bin/view/Meeting/20090210
05
1/ Verify CPU, I/O overconsumption, and memory leak:
CPU: Check processor load servers with top
I/O: Check I/O with Visual VM
Memory: Check GC activity of differents JVM with Visual VM, JConsole, heap dump, MAT
-> These 3 points are used to identify programming errors leading to excessive consumption of CPU and I / O, the infinite loop and memory-leaks.
2/ Check [...]
05
1/ JVM instrumentation(add JVM option)
-Xdump:java+heap+system+snap:events=user,request=exclusive+prepwalk
2/ Find java process (PID)
ps aux | grep java
or
ps auxwww | grep java
or
jps -v | grep -iv jps
3/ Trigger heap dump in hprof format
jmap -dump:format=b,file=dump.hprof <PID>
4/ Analyze dump with MAT
(cf. download Eclipse Memory Analyzer http://www.eclipse.org/mat/downloads.php)
File->Open Heap Dump …
5/ Analyze dump with jhat
>launch jhat on heap dump:
jhat dump.hprof
>go to http://localhost:7000/
27
The Thread Dump is a photograph taken at T time of all threads acyivity in the application server. They are displayed one after the other as a stack trace. This photograph of the JVM state allow us to analyze the deadlock between threads.
1/ Find java process (PID)
ps aux | grep java
or
ps auxwww | grep java
or
jps -v [...]
26
Dans un post précédent, nous avons vu le fonctionnement de la JVM (cf. http://www.opensides.fr/?p=271). Aujourd’hui nous allons voir à quoi sert la zone PermGen et surtout comment éviter les erreurs de type PermGen OutOfMemory..
C’est quoi la PermGen ?
La PermGen est un segment de mémoire dans laquelle sont stockés le bytecode et les type primitifs lors [...]
21
Software development is based on resources. This may be of different nature (processor, memory, I / o). One of the challenges of software development is to understand the management of these resources to optimize the performance of our applications.
Here is a small synthetical post on hardware resources of a system microprocessor.
* The processor (CPU) is [...]
21
Le développement logiciel repose sur des ressources. Celle-ci peuvent être de différentes nature (processeur, mémoire, I/o). Un des enjeux du développement informatique est de comprendre la gestion de ces ressources pour optimiser les performances de nos applications.
Voici un petit article synthétique sur les ressources matériel d’un système à micro-processeur.
Sur ce schéma on observe 4 éléments:
Le [...]