2010-09-08 2 views
0

Je suis en série un grand tableau 3d sur le disque. Les données d'origine est d'environ 50MB et la sortie GZiped est en taille de Kb.Mais l'opération prend environ 5 secondes.J'aimerais Je pensais qu'il serait préférable d'utiliser une lecture/écriture mappée car j'ai vu qu'il a better performance que l'écriture de flux habituelle.Mais je ne sais pas comment utiliser ObjectOutputStream et GZIPOutputStream avec écriture mappée. S'il vous plaît suggérer la météo vaut la peine d'utiliser lire/écrire mappé avec flux de sortie de l'objet et également s'il vous plaît envoyer un code d'échantillon si quelqu'un a l'expérience de faire la même chose.Java GZip un objet et sérialiser à l'aide de MappedByteBuffer

Répondre

1

La page que vous avez liée à affiche des performances moins bonnes pour l'écriture mappée. Il bat seulement un flux régulier sur les opérations de lecture et de recherche. Donc je suppose que cela ne va pas vous aider, car ObjectOutputStream et GZipOutputStream sont de simples compositeurs d'écriture.

+0

Désolé pas le mode d'écriture mappé. Ce que je voulais dire, c'est le mode lecture/écriture – Emil

+0

utilisez-vous le mode lecture/écriture? Vous avez dit que vous écrivez quelque chose sur le disque en utilisant ObjectOutputStream. Sonne en écriture seule. – Thilo

+0

En fait, je dois le relire aussi après l'écriture.Ceci est en fait 3 tableaux 3D de données filtrées.Filtrage est un processus coûteux et aussi si je garde ces tableaux en mémoire, il va boucher la mémoire si juste pour le moment jusqu'à ce qu'il y ait utiliser pour les données filtrées, il sera sur le disque.Lorsque cela sera nécessaire, il sera lu. – Emil

Questions connexes