Une optimisation qui ne coûte rien

13 août 2006
Voici une optimisation qui peut améliorer les performances de votre serveur, et qui ne coûte rien.
Lorsque vous mettez votre serveur en exploitation, rajoutez cette ligne juste après la journalisation de lancement dans la console :

    System.out.close()

System.out doit être le seul flux (stream) à pouvoir être fermé sans générer d'exception lors d'un 'write()'.
Bien sûr vous n'aurez plus vos informations de debug dans la console...
Il faudra compter sur les nombreuses API de journalisation qui vous permettent de faire persister les messages d'alerte. Mais n'est-ce pas mieux ainsi ?

Si votre serveur sature, réfléchissez à celà ...

13 août 2006
Lorsque votre serveur a du mal à monter en charge, découvrez pourquoi il peut être utile de mettre les réferences à null .
Voici les deux versions d'un même programme. Bien sûr la seconde version est mieux armée pour la montée en charge.
  1.     byte[] buffer;
        for (int index = 0; index < 10; index++) {
            buffer = new byte[65535];
            ...
        }
    
  2.     byte[] buffer;
        for (int index = 0; index < 10; index++) {
            buffer = new byte[65535];
            ...
            buffer = null;
        }
    
Lors de la manipulation de grande quantité de données, le fait de mettre volontairement les références à null permet au garbage-collector de faire son travail. Le code consomme donc mathématiquement la moitié moins de mémoire. Ce fonctionnement sera évident si vous tentez de réserver la totalitée de la mémoire allouée à la jvm.