Hashcode and Equals Debugging – Performance

A few weeks ago I ran into this story on Reddit that discusses the problem with using the URL class as a key in a Map. This boils down to remarkably slow implementation of the hashcode() method in java.net.URL which makes this class unusable in such situations. Unfortunately, this is a part of the Java API specification and is no longer fixable without breaking backward compatibility. 

What we can do is understand the problem with equals and hashcode. How can we avoid such problems in the future?

Observability: Let Your IDE Debug for You

Current events have brought an even stronger push by many enterprises to scale operations across cloud-native and distributed environments. To survive and thrive, companies must now seriously look at cloud-native technologies—such as API management and integration solutions, cloud-native products, integration platform as a service (iPaaS), and low-code platforms—that are easy to use, accelerate time to market, and enable re-use and sharing. However, due to their distributed nature, these cloud-native applications have a higher level of management complexity, which increases as they scale.

Building observability into applications allows teams to automatically collect and analyze data about applications. Such analysis allows us to optimize applications and resolve issues before they impact users. Furthermore, it significantly reduces the debugging time of issues that occur in applications at runtime. This allows developers to focus more on productive tasks, such as implementing high-impact features. 

Performance Engineering Management: A Quick Guide

In every project performance testing, assessment, and resolution become the key phase before going to production. In this article, there will be a sneak preview of key concepts, lifecycle steps, tips, and further guidance.

I will try to cover the holistic view in this short writing including non-functional requirements with high-level details but the focus will be on the performance aspect mainly, beyond this a lot more detailed steps will be involved. Additionally, the focus will be on Java-based web applications mainly while some of the details are generic and applicable to other platforms and technologies.

Latency Cost of Implementing API Policies (Anypoint Platform)

Practicing an API policy to API invocations sums treating overhead, which rises in increased latency (decreased response time) as seen by API clients. Depending on the type of API policy, that latency is up to 0.38 milliseconds (approx.) per HTTP request.

Improvement in HTTP request-response latency into the application of several API policies, which are enforced set in the API implementation.

How to Accelerate Application Performance With Smart SQL Queries

Why So Many Performance Issues Are Caused by the Database

We often forget that each request is not independent of other requests. If one request is slow, it’s unlikely to affect the others… right?

The database is a shared resource used by all processes that runs in your application. Even just one poorly designed access can hurt the performance of the whole system.

Simulate Latency-Browsermob Proxy: Convert HAR to Locust Scenarios

I hope you had enjoyed reading the first article of this series Performance Capture I - Export HAR Using Selenium and BrowserMob-Proxy? Let's see how to simulate the latencies, get DOMContenLoaded time,  convert the HAR file to locust tasks to do performance testing.

Simulate Network Latencies

Browsermob proxy provides an option to limit the bandwidth through the proxy. This helps in identifies the bottlenecks in performance with slow networks. The limit function that takes a dictionary as it allows the users to play with the latencies. To reduce the bandwidth, just add the below lines to the server after starting the server.

Performance Testing: Samples Isolation

This article is intended to explain the important use case of sharing data across the ThreadGroups in JMeter where most developers/test engineers face these challenges. Let's start with the example use case below:

  1. Create JDBC Requests in a ThreadGroup.
  2. Retrieve the Results.
  3. Share the Results to Another Thread Group
  4. Use the Results to Send the HTTP Calls.

As part of this material: