Fully featured low overhead profiler for Java EE and Java SE platforms.
Monitoring and profiling solution for Gradle, Maven, Ant, JUnit and TestNG.
Easy to use performance and memory profiler for .NET framework.

Tables, rows, columns

Conceptually, the storage is based on the relation database model.

The information is stored in tables.

Each table has fixed number of columns and arbitrary number of rows.

Each column can store values of particular type, which is specified on table creation. Supported types are: int, long, String. Also, column can refer to particular row in another table; such columns are called foreign keys.

Each column has a name which is a free form text describing column content when table data is presented to user.

The number of columns, their types and names are specified on table creation and cannot be changed afterwards.

Each row stores information for all columns according to their data types.

When table is created, it contains no rows. New rows can be added and existing rows updated. Row removal is not supported.

Rows are numbered starting with 1. This number is called row index.

The number of rows is limited via startup option probetablelengthlimit