All Projects → jgpc42 → lein-jmh

jgpc42 / lein-jmh

Licence: EPL-1.0 license
Leiningen plugin for jmh-clojure

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to lein-jmh

benchdb
A database and query tool for JMH benchmark results
Stars: ✭ 58 (+241.18%)
Mutual labels:  benchmarking, jmh
anybench
CPU Benchmarks Set
Stars: ✭ 54 (+217.65%)
Mutual labels:  benchmarking
Sklearn Benchmarks
A centralized repository to report scikit-learn model performance across a variety of parameter settings and data sets.
Stars: ✭ 194 (+1041.18%)
Mutual labels:  benchmarking
Bombardier
Fast cross-platform HTTP benchmarking tool written in Go
Stars: ✭ 2,952 (+17264.71%)
Mutual labels:  benchmarking
Mangohud
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
Stars: ✭ 2,994 (+17511.76%)
Mutual labels:  benchmarking
doo-chrome-devprotocol
A runner for doo which runs tests in Chrome, using the Chrome Dev Protocol with no need for karma or npm.
Stars: ✭ 27 (+58.82%)
Mutual labels:  leiningen
Tsung
Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Stars: ✭ 2,185 (+12752.94%)
Mutual labels:  benchmarking
dyngen
Simulating single-cell data using gene regulatory networks 📠
Stars: ✭ 59 (+247.06%)
Mutual labels:  benchmarking
esperf
ElasticSearch Performance Testing tool
Stars: ✭ 50 (+194.12%)
Mutual labels:  benchmarking
Pyperform
An easy and convienent way to performance test python code.
Stars: ✭ 221 (+1200%)
Mutual labels:  benchmarking
Ali
Generate HTTP load and plot the results in real-time
Stars: ✭ 3,055 (+17870.59%)
Mutual labels:  benchmarking
Node Ab
A command tool to test the performance of HTTP services.
Stars: ✭ 200 (+1076.47%)
Mutual labels:  benchmarking
Google-Authenticator
Clojure program to compute your google authenticator OTP using TOTP
Stars: ✭ 23 (+35.29%)
Mutual labels:  leiningen
Rabbitmq Perf Test
A load testing tool
Stars: ✭ 197 (+1058.82%)
Mutual labels:  benchmarking
cb-tumblebug
Cloud-Barista Multi-Cloud Infra Management Framework
Stars: ✭ 33 (+94.12%)
Mutual labels:  benchmarking
Gerbil
GERBIL - General Entity annotatoR Benchmark
Stars: ✭ 180 (+958.82%)
Mutual labels:  benchmarking
Profilinggo
A quick tour (or reminder) of Go performance tools
Stars: ✭ 219 (+1188.24%)
Mutual labels:  benchmarking
fahbench
Folding@home GPU benchmark
Stars: ✭ 32 (+88.24%)
Mutual labels:  benchmarking
benchmark VAE
Unifying Variational Autoencoder (VAE) implementations in Pytorch (NeurIPS 2022)
Stars: ✭ 1,211 (+7023.53%)
Mutual labels:  benchmarking
nitroml
NitroML is a modular, portable, and scalable model-quality benchmarking framework for Machine Learning and Automated Machine Learning (AutoML) pipelines.
Stars: ✭ 40 (+135.29%)
Mutual labels:  benchmarking

Clojars Project

Adding to your project

Add [lein-jmh "0.3.0"] to your :plugins section. For example:

(defproject your-project #_...
  :plugins [[lein-jmh "0.3.0"]])

What is it?

Leiningen plugin for running jmh-clojure benchmarks.

Usage

Run lein help jmh to get started.

As mentioned in the help, by default, a jmh.edn file at the root of your project is used to configure lein-jmh. Please see the sample file for a complete guide. The task takes an optional single argument that gives the task and/or benchmark options. If omitted, all defined benchmarks will be run:

$ lein jmh

Give a map to configure the runner. For example, to run all benchmarks that match a selector from a data file in an alternate location:

$ lein jmh '{:file "benchmarks/parser.edn", :select :decode}'

Additionally, the available JMH profilers may be listed with: lein jmh :profilers.

A more involved example can be found here.

More information

This plugin is a very thin wrapper for the jmh-clojure-task library. Please see the documentation there for full usage instructions and extended examples.

Note about tiered compilation

The JVM option -XX:TieredStopAtLevel=1 is normally set automatically by Leiningen when running code in your project. This option speeds up JVM startup time but is normally problematic for benchmarking as it disables the C2 compiler.

Since lein-jmh merges the :jmh profile automatically when running benchmarks, adding the following to your project's :profiles key should be sufficient for most users:

:profiles {:jmh {:jvm-opts []}}

Alternatively, use :fork and specify different :jvm :args to override the Leiningen parent process arguments. This can be specified in your jmh.edn file, or globally via the task options map.

Running the tests

lein test

Or, lein test-all for all supported Clojure versions.

License

Copyright © 2017-2023 Justin Conklin

Distributed under the Eclipse Public License, the same as Clojure.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].