• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Seren
 

Seren

on

  • 1,591 views

Support de la présentation de Seren, librairie de sérialisation Java, à la conférence DevoxxFR.

Support de la présentation de Seren, librairie de sérialisation Java, à la conférence DevoxxFR.

Présentation par Olivier Croisier (zenika.com, thecodersbreakfast.net)

Statistics

Views

Total Views
1,591
Views on SlideShare
680
Embed Views
911

Actions

Likes
0
Downloads
8
Comments
0

2 Embeds 911

http://thecodersbreakfast.net 566
http://blog.zenika.com 345

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Seren Seren Presentation Transcript

    • SEREN  Sérialisation& magie noire 1
    • SPEAKEROlivier CroisierJava SpecialistConsultant @ Zenika@OlivierCroisier"The Coders Breakfast"http://thecodersbreakfast.net 2
    • SEREN ?• La sérialisation est utilisée partout• Efficace et robuste• Mais elle peut être améliorée !• … Automatiquement ? 3
    • SEREN ?• SEREN : Serialization Enhancer• Agent Java• Bytecode engineering• Améliore vos POJO ! 4
    • • Se branche sur le mécanisme TECH standard de sérialisation• Génère des méthodes optimisées writeObject & readObject writeReplace writeObject 10010101 01010101 01010100 10010101 01011001 01010100 readResolve readObject 5
    • TECH• Sérialiser un Objet est coûteux• Ecrire seulement les données utiles• Wrappers numériques & Strings 6
    • TECH• Wrappers numériques - booléen pour gérer "null" - valeur primitive• Strings - booléen pour gérer "null" - caractères UTF8 7
    • TECH• Quelles classes ?• ClassFilters - PackageList - PackagePattern - ClassPattern - Annotation - Custom ! 8
    • TECH• Quels champs ?• Non-transient Non static• Champs "final" - Reflexion ? - Unsafe ? - Assignation directe 9
    • • Classpath USAGE - javassist.jar - seren.properties• Option de JVM -javaagent:seren.jar• Votre code Aucune modification ! 10
    • Seren.properties USAGE// Seren configurationseren.filter=byPackageListseren.verbose=true// Filter definitionfilter.byPackageList=seren.filter.PackageListFilterfilter.byPackageList.packages=com.company.project.model 11
    • • Graphe dobjets PERFS• Champs• Optimisations existantes• Destination du flux 12
    • 500 PERFS450400 String, fixe350 Java : 380 ms300250200 Seren : 425 ms15010050 Boost : x 0.9 0 13
    • 1000 PERFS900800 String, aléatoire700 Java : 920 ms600500400 Seren : 510 ms300200100 Boost : x 1.8 0 14
    • 500 PERFS450400 Integer < 128350 Java : 400 ms300250200 Seren : 345 ms15010050 Boost : x 1.15 0 15
    • 1000 PERFS900800 Integer >= 128700 Java : 880 ms600500400 Seren : 350 ms300200100 Boost : x 2.5 0 16
    • POJO30002500 - Long id PERFS - String firstName2000 - String lastName15001000 Java : 2090 ms Seren : 690 ms500 0 Boost : x 3 17
    • 3000 POJO - Long id2500 - String firstName PERFS2000 - String lastName - Date birthDate15001000 Java : 2930 ms500 Seren : 1220 ms 0 Boost : x 2.4 18
    • 6000050000 PERFS40000 thrift-protobuf-compare30000 .googlecode.com20000 Boost : x 1.04 – 1.0910000 0 19
    • • Code http://github.com/oliviercroisier/seren• Licence & MORE... 3-Clause BSD Licence• Merci à - Heinz Kabutz - Thomas Darimont - Thomas Segismont 20