Skip to content

thunknyc/nrepl-profile

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
 
 
 
 
 
 

nrepl-profile

This functionality has been integrated into CIDER itself. Don't use this project if using a version of CIDER with built-in profiling, as it would cause problems.

nREPL and CIDER support for thunknyc/profile.

Screenshot

Introduction

Profiling is a rich and varied field of human endeavour. I encourage you to consider what you're trying to accomplish by profiling. This package for CIDER may not be suited to your current needs. What is nrepl-profile good for? It's intended for interactive profiling applications where you do not expect a profiling tool to automatically compensate for JVM warm-up and garbage collection issues. If you are doing numeric computing or writing other purely functional code that can be executed repeatedly without unpleasant side effects, I recommend you at the very least check out Criterium.

If you are primarily concerned about the influence of JVM-exogenous factors on your code—HTTP requests, SQL queries, other network- or (possibly) filesystem-accessing operations—then this package may be just what the doctor ordered.

Installation

MELPA

Add [thunknyc/nrepl-profile "0.1.0-SNAPSHOT"] to the vector associated with the :plugins key of your :user profile inside ${HOME}/.lein/profiles.clj. Schematically, like this:

{:user {:plugins [[thunknyc/nrepl-profile "0.1.0-SNAPSHOT"]]}}

Obviously the plug-in for CIDER needs to be in there too.

For Emacs, stick cider-profile.el somewhere accessible and add (require 'cider-profile) to your ${HOME}/.emacs, ${HOME}/.emacs.d/init.el, whatever.

Add the following to your init.el, .emacs, whatever:

(add-hook 'cider-mode-hook 'cider-profile-mode)
(add-hook 'cider-repl-mode-hook 'cider-profile-mode)

If you would like to display profiling statistics in the current repl window instead of in a pop-up window, do the following:

(setq cider-profile-buffer nil)

Keybindings

Cider-profile includes the following keybindings out of the box:

  • C-c = Toggle profiling of var under point.
  • C-c + Toggle profiling of namespace.
  • C-c M-= Report whether var under point is profiled.
  • C-c M-+ Display (and, with C-u, set) current maximum per-var samples.
  • C-c - Display summary of profiling data.
  • C-c M-- Display profiling data for var under point.
  • C-c _ Clear collected profiling data.

License

Copyright © 2014 Edwin Watkeys

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

About

nrepl support for thunknyc/profile

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published