Analyzing http and https traffic using fiddler

Fiddler tool can be used for analyzing HTTP and HTTPS (must be enabled from within the fiddler tool) transactions. This tool is a simple to use and by following below tips you can capture and analyze the request and network traffic causing any performance issue. Also you can send the captured logs to support team to get these analyzed if needed. It enables us to inspect all HTTP traffic, set breakpoints, and dig through the incoming or outgoing data. Using fiddler we can check reason for performance bottleneck of a web page, which cookies are being sent to server or what downloaded content is marked as cacheable etc. Installation, Firstly you need to download and install the fiddler tool (https://www.telerik.com/download/fiddler/fiddler4 ) and follow the screen instructions to get this installed. Enabling the traffic for https Open Fiddler and from the top menu click on Tools -> Options and click on the HTTPS tab Check… Read more“Analyzing http and https traffic using fiddler”

Java Performance Tuning Tips

Sometime we need to improve the performance of our application into our code. Below are the recommendations for Java code tuning. Don’t optimize before you know it’s necessary Use a profiler to find the real bottleneck Work on the biggest bottleneck first   Managing Objects Here, idea is used to use garbage collection less frequently either by canonicalization or by references. Lesser number of garbage collection happens, lesser overhead occurs. Avoid creating temporary objects within repeated routines Pre-size collection objects Better to reuse objects than creating Use custom conversion methods for converting data types to reduce creation of temporary objects Canonicalize objects (Replacing multiple objects with single object) whenever required and compare by identity Replace string and other objects with integer constants and compare by identity Better to use primitive types instead of objects for instance variables Use StringBuffer than string concatenation operator Appropriate use of weak, soft references Use cloning… Read more“Java Performance Tuning Tips”

Analysing and fixing Java Heap related Issues

Java Heap related issues can cause severe damage to our application and we might see poor user experience. Java Heap is memory used by your application which is used to create and store objects. We can define the maximum memory for heap by specifying -Xmx<size> by setting the java variable. When your application runs, it will gradually fill up Heap and memory must be released to keep our application working. Hence Java periodically runs a process called ‘Garbage collection(GC)‘ which will scan the heap and clear objects that are no longer referenced by your application.One cannot request Garbage Collection on demand. Only JVM can decide when to run GC. A Heap dump is a snapshot of the memory of when the heap dump was taken.Heap dumps are not commonly used because they are difficult to interpret. But, they have a lot of useful information in them if you know where/how… Read more“Analysing and fixing Java Heap related Issues”

Application Performance Management Tools

Depending on which language/technology your application is built on, there are several tools you could use for this. To fully manage and monitor the performance of an application, it requires collecting and monitoring a lot of different types of data. Below are important components of a complete application performance management tool, Performance of each web requests or transactions Performance of each transactions Usage and performance of all application dependencies like databases, web services, caching etc. Detailed transaction traces Code level performance profiling Server metrics like CPU, memory etc. Support for custom applications metrics Application log data Application errors Real user monitoring etc.   New Relic New Relic products work together as a platform from which you can troubleshoot and monitor software performance from end to end. Its SaaS based tool and supports the various languages – .NET, Java, Ruby, Phython, Nodejs, Go, PHP etc. APM Agents collect application performance data Browser Agent collects… Read more“Application Performance Management Tools”

Defining Performance and Performance Tuning

Why is My Application slow? When we find that after an application is deployed, it is not performing as desired. In other words it’s not meeting non-functional requirements. This application now requires some fixes that may correct the problem. The process of refactoring an application to improve its performance is called tuning. Before tuning we should also know, what is the user expectation (Non-functional requirement)? How much user going to access the system as per NFR. What is required throughput or response time user is expecting etc. Dependency on third party application or software etc.   A definite improvement can be achieved if you do some tuning to your code. The Tuning Process may involve: Switching compilers, turning on optimizations using a different runtime VM, finding bottlenecks in the code or architecture that need some fixes. There are always some limitations to our system i.e. CPU speed and availability, Memory… Read more“Defining Performance and Performance Tuning”