Esiste un modo semplice e pulito per misurarlo oltre a misurare in modo programmatico la dimensione di ciascun tipo di dati (di cui ogni oggetto è composto) memorizzato nella sessione?Misurazione della dimensione dell'oggetto HttpSession
risposta
C'è una classe SessionSize here che ha una funzione per restituire la dimensione di un oggetto HttpSession passato ad esso, una parte della lib Java Web Parts.
Il contenuto della sessione deve essere serializzabile. Quindi serializzalo e vedi la dimensione della matrice di byte risultante.
Non è uguale alla dimensione in memoria, ma può essere utilizzato come rappresentazione approssimativa di esso.
P.S. Si noti che i campi transitori, se presenti, saranno esclusi.
MessAdmin consente di calcolare la dimensione di HttpSession anche se non è chiaro su come è calculates the size of transient objects.
Sembra che ottenere una dimensione approssimativa dell'oggetto HttpSession sia un esercizio inutile in fase di produzione e che uno possa ottenere una dimensione più accurata per un ambiente controllato.
Una cosa da notare è che le dimensioni dell'oggetto Session serializzato è destinata a inesatte a causa di cambiamenti nella codifica dei caratteri - stringhe in Java vengono memorizzati nel formato UTF-16, mentre il flusso di uscita potrebbe essere in una codifica diversa. Maggiori dettagli sul perché il calcolo della dimensione di un oggetto in Java è un problema, può essere trovato in questo JavaWorld article.
Lo sto utilizzando in un'applicazione web con struts-2 framework e spring 3.4 come contenitore di oggetti, la dimensione della sessione I è sempre -1, il che significa che non è possibile calcolare la dimensione degli oggetti nella sessione. –
@Alireza Fattahi Ho lottato con lo stesso problema. E alla fine ho scoperto che è necessario utilizzare il plugin MessAdmin-SizeOf oltre a MessAdmin-Core e MessAdmin-AutoProb per ottenere la dimensione degli attributi di sessione. Si consiglia di aggiungere anche MessAdmin-Serializable. – magicbacon
- 1. Misurazione della copertura della documentazione con Doxygen
- 2. Gestione Httpsession in primaveraMVC
- 3. Misurazione dell'aumento della dimensione heap dopo il caricamento di oggetti di grandi dimensioni
- 4. Misurazione della somiglianza semantica tra due frasi
- 5. Misurazione dell'intensità della luce dalla videocamera Android
- 6. Misurazione della larghezza del testo in Qt
- 7. Misurazione della risoluzione di `std :: clock()`
- 8. Misurazione della velocità effettiva su datanode
- 9. Shiro: Impossibile invalidare HttpSession
- 10. HttpSession - come ottenere session.setAttribute?
- 11. Reindirizzamento dopo HttpSession timeout
- 12. Misurazione della copertura della documentazione con Javadoc e Ant
- 13. Misurazione su un sito web
- 14. Posso spegnere il HttpSession in web.xml?
- 15. Misurazione della larghezza dei pixel di una stringa
- 16. SQL Server 2008 Geography .STBuffer() unità di misurazione della distanza
- 17. Utilizzo di VS2010 Profiler per la misurazione della memoria
- 18. Chi sta conducendo indagini sulla misurazione della funzionalità e dell'usabilità?
- 19. Misurazione della distanza tra due punti Lat/Lng
- 20. Misurazione della "prossimità" negli alberi di grandi dimensioni
- 21. Misurazione della larghezza del testo da disegnare su Canvas (Android)
- 22. Misurazione della velocità di trasferimento file wifi in python
- 23. misurazione tempo caricamento ajax
- 24. Misurazione di un ViewPager
- 25. misurazione esatta del tempo
- 26. misurazione del testo su tela in scala
- 27. Misurazione campagna con BroadcastReceiver proprio
- 28. Pianificazione della capacità della dimensione della cache
- 29. C++ dimensione della matrice
- 30. Cambia dimensione della bussola
Gli attributi di sessione ** devono essere serializzabili (come in "è una buona pratica farlo"); ma non ** devono ** essere. – ChssPly76
La serializzazione della sessione è un modo efficace per risparmiare memoria salvando le sessioni inattive su disco. Se Erlanged ha app con sessione non serializzabile, è la prima cosa da correggere invece di misurare le dimensioni delle sessioni induviduali. –
Oggetto: deve/dovrebbe: contenitore DEVE accettare l'oggetto serializzabile e MAGGIO accettarne altri. Può anche lanciare IllegalArgumentException su qualsiasi non serializzabile. Direi che Serializable è praticamente DEVE, in un modo WE-TOLD-YOU-SO. –