Domanda

Non sono sicuro di quanto utile sarebbe, ma ho pensato che sarebbe stato bello visualizzare gli oggetti utilizzati nel mio programma e quali oggetti a cui si fa riferimento da dove. Immagino che genererebbe alcuni dati che verrebbero utilizzati da un programma come graphviz. Ci sono degli strumenti che lo fanno, altrimenti quanto sarebbe difficile farlo da solo? Idealmente, questo funzionerebbe per qualsiasi programma arbitrario, anche se in caso di necessità potrei apportare alcune modifiche al codice (come aggiungere una chiamata dumpObjects () o altro)

Sono interessato a farlo per Java, ma se ci sono soluzioni per altre lingue, per favore pubblica anche quelle.

È stato utile?

Soluzione

Un profiler ti consentirebbe di vedere quali oggetti vengono creati in fase di esecuzione. Questo è l'output di JProfiler per esempio:

 jprofiler heap walker
(fonte: ej-technologies.com )

Altri suggerimenti

Sun ha sviluppato VisualVM che include la memoria e la profilazione dei processi. Supporta anche plugin per tecnologia come OSGi.

Un caso d'uso interessante sarebbe l'analisi e l'ottimizzazione della memoria. Questo è esattamente ciò di cui parla Eclipse MAT . Dai un'occhiata.

alt text http://dev.eclipse.org /blogs/memoryanalyzer/files/2008/05/dom_tree.gif

Per visualizzare le strutture grafiche (compresi i grafici degli oggetti), ci sono molti strumenti basati su GraphViz: http://www.graphviz.org/

Esiste il Visualizzatore di oggetti grafici che visualizza classi e oggetti in 3D. Per ora manca un'API per automatizzare l'inizializzazione, tuttavia non dovrebbe essere troppo difficile aggiungere questa funzionalità. Codice sorgente anche su Github .

Modifica: apparentemente c'è già del lavoro in quella direzione: https://eprints.hsr.ch/491/

 OGV

non sono sicuro se questo è ciò a cui stai puntando, ma doxygen farà praticamente tutto ciò .

ci vorrà un mucchio di codice di compilazione e lo trasformerà in html con riferimento incrociato, rtf di pdf. completato eseguirà la chiamata dell'albero per ciascuna funzione e "citato da " per ogni variabile

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top