Diagnosing Performance Issues Using Thermostat

Video in TIB AV-Portal: Diagnosing Performance Issues Using Thermostat

Formal Metadata

Diagnosing Performance Issues Using Thermostat
Alternative Title
Java - Diagnosing With Thermostat
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
Multiplication sign
Module (mathematics) Service (economics) User interface Computer file Code Connectivity (graph theory) Maxima and minima Set (mathematics) Client (computing) Cartesian coordinate system Front and back ends Number Word Prime ideal Process (computing) Personal digital assistant Term (mathematics) Information Object (grammar) Extension (kinesiology) Integer Error message Plug-in (computing)
Point (geometry) Empennage User interface Frequency Volume (thermodynamics) Instance (computer science)
Information Mapping View (database) Instance (computer science) Cartesian coordinate system Computer programming Semiconductor memory Term (mathematics) Core dump Reduction of order Video game Object (grammar) Cycle (graph theory) Social class
Meta element Hash function Information Mapping Code String (computer science) Uniqueness quantification Single-precision floating-point format Instance (computer science)
Multiplication sign Computer programming
Thread (computing) Demo (music) Source code Cartesian coordinate system
Pattern recognition Thread (computing) Oval Term (mathematics) Synchronization Process capability index Modul <Datentyp> Physical system Window
Default (computer science) Thread (computing) State of matter Multiplication sign Electronic mailing list Right angle Bit Cartesian coordinate system Resultant Demoscene God
Semiconductor memory Googol
action and if you if you might heard that program of of started a watch a watch commander earlier it's just metric exposed in time and it's it's visualizing that that metric in a in a chart here so that's basically all all it does and I can I
can I can show the code here on so there is the data-collecting component of errors that we call agent and this and there is there is a like a set of custom backend and that back end code is use a bunch of the data access objects and registers that new the back and and at the gist of the code reading the metric is basically this so it reads reads a file from from from 10 there's a file and there's a number in that file and if it does uh read number and inserted into into farmers that and the the gooey client uses those numbers collected and visualize them as chart and so if you if you
if you wanna write your custom plugin you you wanna extent In the agent with the with a custom back and the same code for a pretty for you who it is and isn't a very complicated either on the common modules over a year data access objects you wanna write word for your custom applications the so plug-ins our always ji based of for what it's worth it's and yeah if you're full-color already familiar of where those ji you register cut a bunch of services and so on have your your we charge show up in the process so it's a it's in this in this case and used use is like we we we do in terms of itself uh jarred and and
creates that chart and that's a bunch of data points and paints them yeah the of the volume on the of
the but it can be it can be tenure we gain insight here for instance an ABI prolonging you can
define a new logo of than that goes into into the most of the act itself for instance we don't really know what tried using memory modified as well the OK that's the yeah yeah this this this so this program has has a problem on if if we run it and so look at it in terms that you see you see a massive memory grows it grows and um yeah let's let's analyze it and see how
we how we if we can figure out what's going wrong so if we if you look at that here analyzer charge so it's it it it it it just eats memory and never never really uh and uh yet releases any memory so I even even if I if I wanna wanna if a trigger a custom that you see a cycle it it won't it won't do reduce memory so it's something is in in in my application is holding on to to memory and and it's it's life so I can I can use serviced at and dump heat and see what's what's actually what what's wheat the which which program or which are classes is and the culprit so I don t and if I double click on and on on on 1 of those stunts than I see various statistics and if I if I stored by by the size and and look at their stand and there's there's this user information object and I have a lot lots of instances of that and apparently I hold on to that to that view maps are so let's let's have a look at the at the codons and and see what what what's happening
there so far is a fire at the code then i see ok and the the that I made a stupid mistake I what I actually wanted workers to have 1 1 instance of user information In in that maps and of per user per user name so the in what I what I actually did is is inserted every single instance and I'm not overriding hash codes and yet well it is it's every unique instance of of user information gets answered so if I change that stop the program and run it again the the the so if I if I
look at the same the same program again
then you know OK that that seems to fix the problem OK so you know how much time we have left the again and what OK so the next the next
day a demo shows that the thermistor threats from timeline and so we have a an application that basically ping-pong I for between between threads 1 is runnable and the other 1 is waiting and but the so I the called Ellison involved for for easier
recognition so basically there's a set of and then 1 1 is holding on to a rating for sour for further the freight trying to acquire 0 4 and then and then uh it it runs a bunch of silly things just to give it a runnable and then and then a ping-pong like the the 2 threads at was involved a ping-pong and if we did it it's a nice way of of
visualizing your threads in terms that they the 1 I wanna know what's
what's what's happening so if I turn on and threat monitoring that's not turned on by default because it's more of the heavyweight actions in and there was that so it incurs more overhead so you you'd have to manually manually enable it and if the right here where you have Alice involved and the basically the ping-pong between them and and you see you recognize nice patterns and and and so if you wanna see what's going on in your applications wide but threads acts executed what states there in on the timeline might might actually help you visualize that's you consume into it and and soon back out and yeah that's that's a nice list of America murders and that you can you can also select select Alice involved here double-click kind and it's been pretty much waiting and runnable have 50 % of the time that that was the end of the year and you know about that 1 of the things that that if you knew it was in a bit of a pain in the butt lots of custom you as use of alright so are there any questions like what what to I think that you can use that as a result a of God of examples but this is actually what the news that the the the scene of no well you know I think it was
that it was the memory 1 making this is 1 of the things that have spatial lies on and the the