visualvm | VisualVM is an All-in-One Java Troubleshooting Tool | Monitoring library

 by   oracle Java Version: 2.1.7 License: Non-SPDX

kandi X-RAY | visualvm Summary

kandi X-RAY | visualvm Summary

visualvm is a Java library typically used in Performance Management, Monitoring applications. visualvm has no bugs, it has no vulnerabilities and it has high support. However visualvm build file is not available and it has a Non-SPDX License. You can download it from GitHub, Maven.

VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. See for details, downloads and documentation.

            kandi-support Support

              visualvm has a highly active ecosystem.
              It has 2484 star(s) with 284 fork(s). There are 88 watchers for this library.
              There were 1 major release(s) in the last 6 months.
              There are 85 open issues and 393 have been closed. On average issues are closed in 23 days. There are 9 open pull requests and 0 closed requests.
              It has a negative sentiment in the developer community.
              The latest version of visualvm is 2.1.7

            kandi-Quality Quality

              visualvm has 0 bugs and 0 code smells.

            kandi-Security Security

              visualvm has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              visualvm code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              visualvm has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              visualvm releases are available to install and integrate.
              Deployable package is available in Maven.
              visualvm has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions are available. Examples and code snippets are not available.
              visualvm saves you 641743 person hours of effort in developing the same functionality from scratch.
              It has 312490 lines of code, 28274 functions and 2757 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed visualvm and discovered the below as its top functions. This is intended to give you an instant insight into visualvm implemented functionality, and help decide if they suit your requirements.
            • Creates the default columns from the data model .
            • Populate load query .
            • Reads a dump tag .
            • Handles a client command .
            • Update info panel .
            • Creates and returns a panel that allows to filter rows in the tree .
            • Adds the descriptor .
            • Get the UI .
            • Draw the pie chart .
            • Receives a command from the wire .
            Get all kandi verified functions for this library.

            visualvm Key Features

            No Key Features are available at this moment for visualvm.

            visualvm Examples and Code Snippets

            Number of objects cached in production using EhCache
            Lines of Code : 9dot img1License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            name: EhCacheMetrics
            version: 1.0
            enabled: true
              - object_name: {see Metadata within VisualVM MBeans browser}
                  - attributes: CacheHitPercentage, CacheHits, CacheMisses, ObjectCount
                    type: simple
            Size of thread in parallelStream greater than cpu cores
            Javadot img2Lines of Code : 41dot img2License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            public class ForkJoinPoolTest {
                public void testManagedBlocker() throws InterruptedException {
                    // wait to be able to connect with VisualVM
                    IntStream.range(0, 100).parallel().pee
            How can I see the options passed to tomcat8 while starting?
            Lines of Code : 3dot img3License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            $ apt-get install visualvm
            $ visualvm
            Is it safe to store an Entry from a Map? Can it cause memory leaks?
            Javadot img4Lines of Code : 85dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            java version "1.8.0_152"
            Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
            Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
            Caption           : Intel64 Family 6 Model 158 Stepping 9
            NullPointerException in SetupUIPlugin.performStartup()
            Lines of Code : 4dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            clean your .metadata folder and re-import the projects.
            Right click on project > Select Run As > Run Configurations Click on Select Other link next to Using VisualVM Launcher Select Eclipse EDT launcher Click

            Community Discussions


            JavaFX memory usage: setFill() vs -fx-fill
            Asked 2022-Mar-22 at 19:57

            I'm currently working on a 2D top-down game written in Java(FX). With each new game world a random map (background and vegetation) will be created based on Perlin Noise, the amount of created objects lies between 5000 - 7000. The individual parts of the vegetation (trees, bushes, rocks, etc.) are represented as rectangles "filled" with an image.

            While playing the game, a player can exit a current world and create a new random one whenever he/she wants. When doing so, 5000 - 7000 new objects will be created that all need an image.

            As far as I know there are two ways in JavaFX to add an image to a rectangle:

            1. By using rectangle.setFill(new ImagePattern(new Image(path)))
            2. Or by adding a CSS styleclass and using -fx-fill: url(path)

            With the first option I very soon ran into OutOfMemoryErrors, while the second option runs perfectly smooth. I decided to start up VisualVM to see how big the difference in memory usage actually is, and it is insane. See the screenshots from VisualVM below to get an idea (3 new world are being created):



            While both options store the image data within the memory's byte[], I'm wondering where this huge difference in memory usage is comming from? Is CSS somehow able to "fill" the rectangle without creating some sort of an image container and the image itself? If so, wouldn't it be possible to adapt that to JavaFXs setFill() method? What am I missing?😅



            Answered 2022-Mar-22 at 19:57

            You appear to be creating a new Image for every rectangle. If you're creating 5000-7000 rectangles, you then have 5000-7000 Image instances, which presumably replicate a lot of the same image data.

            Instead, just cache the Images so you only load one per path:



            how to measure method allocation rate?
            Asked 2022-Jan-16 at 23:13

            Is there any profiler or tool (jconsole, jfr, VisualVM, ... ) for the JVM which shows methods along their allocation rate?

            I mean, something like this



            Answered 2022-Jan-16 at 23:13

            JDK Flight Recorder (JFR) can measure allocation rate per allocation site (method), but it's sample based, so it trades accuracy for overhead. You need a few thousands samples. The overhead of recording the stack trace (or method) for every allocation is enormous and would bring the application to a halt.

            JDK 16 introduced a new event (ObjectAllocationSample) that caps the number of events per second. You should be able to see it in JMC. If not, here is a small program that will give you a histogram of allocation per method.



            Broken psql from brew upgrade postgresql
            Asked 2021-Dec-09 at 15:43
            Too long don't read

            I wanted to upgrade some things through HomeBrew, but it seems like it broke my Postgres.

            I'm on MacOS. I need to be able to run my Postgres again. Deleting without backups isn't much of a problem: this is a local dev setup.

            Long sequence of operations for upgrading and debugging

            I ran:

            • brew update
            • brew upgrade

            Which output:



            Answered 2021-Dec-09 at 15:43


            Installing jenkins on Linux Mint 20.2
            Asked 2021-Nov-26 at 06:56

            I've Linux Mint 20.2 Cinnamon and I tried to install jenkins. Detailed steps for installation is as below:

            1. Installing java - installed via apt



            Answered 2021-Nov-26 at 06:56

            jenkins will work with java 8 on mint 20 and 21. If you have different java versions installed on your system then select the jdk8 as default by



            Spring RabbitMq Listener Configuration
            Asked 2021-Nov-10 at 14:08

            We are using RabbitMq with default spring boot configurations. We have a use case in which we want no parallelism for one of the listeners. That is, we want only one thread of the consumer to be running at any given point in time. We want this, because the nature of the use case is such that we want the messages to be consumed in order, thus if there are multiple threads per consumer there can be chances that the messages are processed out of order. Since, we are using the defaults and have not explicitly tweaked the container, we are using the SimpleMessageListenerContainer. By looking at the documentation I tried fixing the number of consumers using concurrency = "1" . The annotation on the target method looks like this @RabbitListener(queues = ["queue-name"], concurrency = "1").

            As per the documentation this should have ensured that there is only consumer thread.

            {@link org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer * SimpleMessageListenerContainer} if this value is a simple integer, it sets a fixed * number of consumers in the {@code concurrentConsumers} property



            Answered 2021-Nov-08 at 15:42


            Selenium screenshot performance
            Asked 2021-Oct-20 at 16:49

            I am processing animations taking place in a webpage in a video software. I am currently using Selenium 4 with Chrome and I'd like to achieve a better performance.

            I could not find a way to leverage the Page.startScreencast method via Selenium, so my current approach is simply taking periodic screenshots using



            Answered 2021-Oct-20 at 16:49

            I too have struggled how to call startScreencast via Selenium interface however there are other libraries which allow you to do this; Selenium 4 is just a helper wrapper to abstract some of the complexities.



            How do we know which type of GC(young/full) is currently being executed in my Java Program using VisualVM or any other tool?
            Asked 2021-Oct-19 at 07:57

            I am doing a performance analysis of a Program using VisualVM tool. I was able to check CPU usage and heap usage of the program but couldn't figure out which type of GC (young GC/full GC) is executing currently. Is there anyway to find it using VisualVM or is there any other tool for it?



            Answered 2021-Oct-19 at 06:39

            I am no VisualVM expert, so I do not know how to do this using. But I can provide you a couple of alternatives


            You can see what kind of gc is being performed by using jstat

            First we need to discover the PID of your Java running process. For this, we can use jps. In this example, a running Eclipse IDE.



            VisualVM Profiler: How to test CPU Time for a method with varying parameter sizes?
            Asked 2021-Sep-12 at 12:49

            Suppose I have a method that can take in a parameter is size n (Like an array with size n); is it possible to investigate the CPU Times for the method with varying array sizes in an automated manner using VisualVM's Profiler?

            Currently I only know how to investigate a particular running instance, and even if I use a loop to repeat the method with increasing n, VisualVM's profiler can only tell me the accumulative CPU Time. Ideally, I will be able to plot a graph of CPU Time vs n, where n is the size of the parameter I pass into the method. Is this possible with VisualVM?



            Answered 2021-Sep-12 at 12:49

            The only tool I know that has this functionality out of the box is JProfiler with its Complexity analysis:

            You can configure a method and a script that calculates a number from its parameters (the complexity), in your case the script would just return the parameter itself.

            Disclaimer: My company develops JProfiler



            Is This Because of Memory Leakeage?
            Asked 2021-Aug-25 at 09:52

            I am constantly getting images from a local server and I want to show them on the JPanel.

            I wrote a code that works for a while without any issue. But after some time (approximately 5 min), I get this error:



            Answered 2021-Aug-25 at 09:52

            Answer of Vyacheslav in this post explains why metaspace increases.

            I run the application with -Djava.compiler=NONE option and there was no increase in the metaspace.



            How to free all resources after reading a JRT?
            Asked 2021-Jun-22 at 12:57

            I am trying to read the list of modules available in a given Java 9+ installation, given its Java Home, using the method described in How to extract the file jre-9/lib/modules?.

            The solution works, but it appears that the resources allocated to read the content of the Java Runtime Image are never freed, causing a memory leak, observable with VisualVM for instance:

            How can I fix the memory leak in the following reproduction?



            Answered 2021-Jun-22 at 12:23

            Refer to javadoc for method list (in class java.nio.file.Files). Here is the relevant part.

            API Note:
            This method must be used within a try-with-resources statement or similar control structure to ensure that the stream's open directory is closed promptly after the stream's operations have completed.

            In other words you need to close the Stream returned by your modules method.


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install visualvm

            To build VisualVM, use ant build-zip command in the visualvm/visualvm directory. To run VisualVM, use ant run command in the visualvm/visualvm directory.
            To build or run the plugins suite, use ant build or ant run in the visualvm/plugins directory. This will automatically build the zip distribution of the core VisualVM tool into visualvm/visualvm/dist/ and extract it into the visualvm/plugins/visualvm directory. After that the build of the plugins suite continues to build each of the individual plugins. Running the plugins suite means starting VisualVM with all the plugins installed.


            We highly appreciate any feedback! Please let us know your ideas, missing features, or bugs found. Either file a RFE/bug or leave us a message. For legal reasons, we cannot accept external pull requests. See CONTRIBUTING for details.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone oracle/visualvm

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Monitoring Libraries


            by netdata


            by getsentry


            by apache


            by osquery


            by dianping

            Try Top Libraries by oracle


            by oracleJava


            by oracleShell


            by oracleJava


            by oracleRuby


            by oracleJava