devxlogo

We are an award-winning tech entrepreneurship website where trusted experts can provide value globally.

Since 1998, DevX has helped people start businesses, build websites, and provide enterprise technology to people globally. Interviewing the likes of Microsoft’s co-founder, Steve Ballmer, the publication brings comprehensive, reliable, and accessible insights to the Internet.

devxlogo

Trusted for 26 years

Over 30K Articles

1M+ Readers

Expert-reviewed

10K+ Tech Terms

As seen in:

microsoft logo
business_insider_logo
wired_logo
berkley
arstechnica_logo
hackernoon

The Latest

Micrometirics for CI/CD pipeline

Continuous Integration/Continuous Deployment (CI/CD) has become central to software development. To ensure high-quality software releases smoke tests, regression tests, performance tests, static code analysis & security scans are run in CI/CD pipeline. Despite of all these quality measures, still applications are facing OutOfMemoryError, CPU spikes, unresponsiveness, degradation in response time in production environment.  These sort of performance problems surfaces in production because in CI/CD pipeline only macro level metrics such as: Static code quality metrics, test/code coverage, CPU Utilization, memory consumption, response time??? are studied. In this article let???s review the micrometrics that should be studied in CI/CD pipeline to delivery high quality releases in production. We will also learn how to source this micrometrics and integrate it in to CI/CD pipeline. How Tsunamis are forecasted?  You might wonder why Tsunami forecasting is related to this article. There is a relationship :-). A normal sea wave travels at a speed of 5 ??? 60 miles/hr, whereas Tsunami waves travel at a speed of 500 ??? 600 miles/hr. Even though Tsunami wave travels at a speed of 10x ??? 100x speed of normal waves, it???s very hard to forecast Tsunami waves. Thus, modern day technologies use micrometrics to forecast to Tsunami waves. Multiple DART (Deep-ocean Assessment and Reporting of Tsunami) devices are installed all throughout the world.  DART contains two parts:  a. Surface Buoy: Device which floats at the top of ocean water b. Seabed Monitor: Device which is stationed at the bottom of the ocean  Deep ocean water is about 6000 meters in depth. (20x of tallest San Francisco Sales Force tower). Whenever the sea level raises more than 1 mm then DART automatically detects it and transmits this information to satellite. This 1 mm raise in sea water is a lead indicator of Tsunami origination. I would like to request you to pause here for a second and visualize length of 1 mm in the scale of 6000 meters sea depth. It???s nothing, negligible. But this micrometric analysis is what used for forecasting Tsunamis.  How to forecast Performance Tsunamis through Micrometrics?  Similarly, there are few micrometrics that you can monitor in your CI/CD pipeline. This micrometrics are lead indicators of several performance problems that you will face in production. Raise or drop in values of these micrometrics are the great indicators for the origination of performance problems.  1. Garbage Collection Throughput 2. Average GC pause time 3. Maximum GC pause time 4. Object creation rate 5. Peak heap size 6. Thread Count 7. Thread States 8. Thread Groups 9. Wasted Memory 10. Object Count 11. Class Count  Let???s study each micrometrics in detail:  1. GARBAGE COLLECTION THROUGHPUT Garbage Collection throughout is the amount of time your application spends in processing customer transactions vs amount of time your application spends in doing garbage collection.  Let???s say your application has been running for 60 minutes. In this 60 minutes, 2 minutes is spent on GC activities. It means application has spent 3.33% on GC activities (i.e. 2 / 60 * 100) It means Garbage Collection throughput is 96.67% (i.e. 100 ??? 3.33).  When there is a degradation in the GC throughput, it???s an indication of some sort of memory problem. Now the question is: What is the acceptable throughput %? It depends on the application and business demands. Typically, one should target for more than 95% throughput.  2. AVERAGE GARBAGE COLLECTION PAUSE TIME  When Garbage Collection event runs, entire application pauses. Because Garbage Collection has to mark every object in the application, see whether those objects are referenced, if no one is referencing then will be evicted from memory. Then fragmented memory is compacted. To do all these operations, application will be paused. Thus when Garbage collection runs, customer will experience pauses/delays. Thus one should always target to attain low average GC pause time. 

Import Excel Data into SQL

In order to read from an Excel Spreadsheet through SQL you need to install the Office 2010 Database Engine. Afterwards, run statements similar to the following: EXEC sp_configure ‘Show Advanced

Learn How to Force a Style

If a style is marked with !important, it will be used with priority even if there’s a overwriting rule below it. .page { background-color:green !important; background-color:blue;} In the example above,

Understanding LineNumberReader

LineNumberReader is a cool class in Java from which numerous line related tasks can be performed: import java.io.FileReader;import java.io.LineNumberReader;import java.io.IOException;public class UsingLineNumberReader { public static void main(String args[]) { UsingLineNumberReader

Identify Troublesome Web Queries in IIS

The IIS admin interface lets you view the worker process details that are sometimes helpful to debug server performance issues. Choose the “Worker Processes” in the list of options in

Finding Collations

To?find?Collations?in?your?table,?you?can?use?the?following: SELECT ????SysCol.Name,?SysCol.Collation_Name FROM? ????sys.Columns?SysCol WHERE ????Object_ID?=?OBJECT_ID(‘YOUR_TABLE_NAME’)

Adding a Mask in CSS

Masking tells your browser which asset elements should be visible, and is very practical for creating attractive shapes and layouts. Masking can be realized in three ways: using SVG elements,

Understanding CopyOnWriteArrayList

In CopyOnWriteArrayList, operations such as add, remove, etc., are implemented on a copy of the of the array. It definitely impacts performance but the trade-off is that the data remains

Is anyone faster than Devart? Support for MySQL v8.0 is already in dbForge Studio

Devart introduced a significant update of dbForge Studio for MySQL with support for MySQL 8.0, MariaDB 10.3, Tencent Cloud. The release also in??ludes a brand new feature – navigation between keywords. Devart, a Czech software vendor of database tools and data connectivity solutions, has released a significantly improved version of the universal MySQL and MariaDB GUI tool, dbForge Studio for MySQL v8.0. Following the recent update of MySQL Server by Oracle, dbForge Studio now supports for the latest version of MySQL.  Here???s the scoop on the most outstanding improvements implemented in the updated dbForge Studio for MySQL: With the support for MySQL 8.0, dbForge Studio now offers users the ability to develop, manage and administer MySQL databases on the latest server version using all handy features. dbForge Studio for MySQL continues to broaden the compatibility options and now provides connecting and working with the latest MariaDB v10.3. Good news for Tencent Cloud users???the new dbForge Studio for MySQL v8.0 allows connecting to this cloud service designed for deploying and using MySQL databases in the cloud effortlessly. To make work with code more convenient, dbForge Studio for MySQL v8.0 now offers seamless navigation between keywords in SQL Editor using the shortcut menu or ???Ctrl+F12??? key combination. Dive deep into other useful features of dbForge Studio for MySQL v8.0 at https://www.devart.com/dbforge/mysql/studio/ . About Devart Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects. For additional information about Devart, visit https://www.devart.com/ .

How to Diagnose an OutofMemoryError in Android

Diagnosing OutofMemoryError in Android apps can become a tricky, tedious job. Here, we would like to show you an easy technique to troubleshoot OutOfMemoryError in Android apps. BuggyApp To facilitate this exercise,

Temporary Tables in MySQL

We may want to use a table to store values while computing, which in turn might be used by subsequent processing. But, for sure, this working data must not be

Determine Which Version of SQL You Are Running

The following are two T-SQL methods that determine which version of SQL you are running. The first one is very short, using the @@VERSION?variable, whereas the longer method makes use

Char Is Not Int

The code below expects that you can create a character from a number. It’s already bad technically: int is signed, while char is unsigned (a char is just 16 bits

Find the Sign of a Number in C#

System.Math?class?has?a?Sign?method?that?will?help?you?determine?if?a?number?has?a?negative?sign?or?positive?sign.? //returns?-1? int?negativeNumber??=?System.Math.Sign(-2);? //?returns?1 int?postiveNumber?=?System.Math.Sign(1);? //returns?0 ?int?neutralNumber?=?Math.Sign(0);?

Even More Robust Features in Updated Devart ODBC Drivers to Tap into Data Seamlessly

Devart, Czech software provider of database connectivity solutions and tools for database management and development, has announced the release of updated versions of ODBC drivers for clouds and databases from Windows, macOS, Linux, both 32-bit and 64-bit. Adopting enhanced ODBC drivers, users can smoothly tap into needed data within many popular IDEs, leading analytics and reporting tools, as well as various programming languages. 

Starting JVM with Memory of User’s Choice

After successive development exposure, we understand the memory needs of our application. Java allows you to start the application with memory specifications as required and the application is bound to

3 Options for Capturing Heap Dump from an Android App

Heap Dumps are vital artifacts to diagnose memory-related problems such as memory leaks, Garbage Collection problems, and java.lang.OutOfMemoryError. They are also vital artifacts to optimize memory usage as well. In

Tip: Options for Capturing Heap Dump from an Android App

Heap Dumps are vital artifacts to diagnose memory-related problems such as memory leaks, Garbage Collection problems, and java.lang.OutOfMemoryError. They are also vital artifacts to optimize memory usage as well. In

DateDiff_BIG Function

SQL Server 2016 introduces the DATEDIFF_BIG function that allows you to obtain date differences between larger date ranges. DateDiff_Big returns bigint. Here is a small example: SELECT DATEDIFF_BIG(SECOND, ‘19000101’, ‘20180403’)

Object Arrays are so Flexible

/*** @returns [1]: Location, [2]: Customer, [3]: Incident*/Object[] getDetails(int id) {… This sort of passing back values from a method is error prone; it is recommended to declare a small

Using Swagger to Document Your ASP.NET Web APIs

Web APIs are pretty useful to share data. One of the most common problems faced while consuming APIs is the lack of documentation and testable features. Swagger bridges that gap

Understanding the DAYOFWEEK Function in MySQL

You can easily find the day of the week for a given date in MySQL. The day starts with 1 (Sunday), 2 (Monday) and so on. Command: SELECT DAYOFWEEK(‘2018-02-20’); Expected

Display the Contents of a Stored Procedure

A trigger is a stored procedure that runs automatically when various events happen (update, insert, delete, etc.) To display the contents of a Trigger, use a query similar to the

Relying on the Default TimeZone

Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);Date startOfDay = calendar.getTime(); The code above calculates the start of the day (0h00). The first mistake is the missing millisecond field of

Find the TLS Version a Vendor Supports

Transport Layer Security (TLS) is a security protocol that allows for secure Internet communication. TLS has various versions and you will need to know whether a particular vendor supports the

Understanding Memory Availability and Usage

There are times when we might be interested in knowing the memory usage of our application. The Runtime class in Java has various methods to help with that. This data