# Using LNT to Track Performance

DevFeed: [Using LNT to Track Performance](<https://devfeed.tech/articles/using-lnt-to-track-performance-43041.md>)

Original publisher: [Read original article](<https://blog.llvm.org/2016/06/using-lnt-to-track-performance.html>)

Author: Kristof Beyls

Published: 2016-06-15T23:19:00Z

Content type: tutorial

Language: en

Sources: [The LLVM Project Blog](<https://devfeed.tech/sources/the-llvm-project-blog.md>)

Topics: [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Code](<https://devfeed.tech/topics/code.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [screenshot](<https://devfeed.tech/topics/screenshot.md>)

Tags: [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [lnt](<https://devfeed.tech/tags/lnt.md>), [performance](<https://devfeed.tech/tags/performance.md>), [profiling](<https://devfeed.tech/tags/profiling.md>)

## AI overview

This tutorial explains how LNT tracks code performance using a server for submitting measurement data, analysis of significant changes, and a web interface for results. It covers post-commit regression detection and pre-commit analysis of patch performance impact.

## Source excerpt

In the past year, LNT has grown a number of new features that makes performance tracking and understanding the root causes of performance deltas a lot easier. In this post, I'm showing how we're using these features. LNT contains 2 big pieces of functionality: A server, a. to which you can submit correctness and performance measurement data, by sending it a json-file in the correct format, b. that analyzes which performance changes are significant and which ones aren't, c. that has a webui to show results and analyses in a number of different ways. A command line tool to run tests and benchmarks, such as LLVM's test-suite, SPEC2000 and SPEC2006 benchmarks. This post focuses on using the server. None of the features I'll show are LLVM-specific, or even specific to ahead-of-time code generators, so you should be able to use LNT in the same way for all your code performance tracking needs. At the end, I'll give pointers to the documentation needed to setup an LNT server and how to construct the json file format with benchmarking and profiling data to be submitted to the server. The features highlighted focus on tracking the performance of code, not on other aspects LNT can track and analyze. We have 2 main uses cases in tracking performance: Post-commit detection of performance regressions and improvements. Pre-commit analysis of the impact of a patch on performance. I'll focus on the post-commit detection use case. Post-commit performance trackingStep 1. Get an overview of the "Daily Report" page Assuming your server runs at http://yourlntserver:8000, this page is located at http://yourlntserver:8000/db_default/v4/nts/daily_report The page gives a summary of the significant changes it found today. An example of the kind of view you can get on that page is the following In the above screenshot, you can see that there were performance differences on 3 different programs, bigfib, fasta and ffbench. The improvement on ffbench only shows up on a machine named "machine3", w