41

I need the "perf" utility to monitor the program on my Mac. I know linux comes with it, but is it available on Mac?

I am working on a OSX 10.9 Mavericks and tried "port search" for perf or linux-tools, but I couldn't get any results.

Peter Cordes
  • 245,674
  • 35
  • 423
  • 606
wlhee
  • 1,798
  • 3
  • 16
  • 18
  • 3
    The perf(1) is heavily dependent on Linux-specific code. Your best bet is probably to try out http://code.google.com/p/gperftools/ which should compile on Mavericks as well. –  Apr 21 '14 at 16:45

4 Answers4

24

As @Sami Laine said in his comment, the Linux perf tool is dependent on Linux specific code. It relies on the perf_event_open system call which is not standardized.

Note: Maybe you could search how MacOSX users are using recent hardware performance counters.

Manuel Selva
  • 16,987
  • 21
  • 76
  • 127
  • 5
    @thirty, MacOSX users can access hardware performance counters via `Instruments` application. There is manual how to use them: http://stackoverflow.com/a/13075880/196561 – osgx Apr 28 '14 at 02:36
19

Instruments app

On macOS you can use the Instruments application to profile your code.

I like to use the "Time Profiler" which will show you how much time your application is its various parts during execution. I haven't used perf myself, but from talks/videos that I've seen this seems to be the most common use.

To use the "Time Profiler":

  1. Run Instruments, select Time Profiler
  2. At the top left, select your target (executable).
  3. Hit the Record button on the top left and let it run for a little while.
  4. Pause or Stop the execution and drill down on your calls in the main window.

Hope this helps.

Basil Bourque
  • 218,480
  • 72
  • 657
  • 915
nenchev
  • 1,591
  • 19
  • 14
2

On OSX you can use sample together with filtercalltree.

Gabriel
  • 2,390
  • 4
  • 27
  • 41
1

Check out Google Perf Tool

If you dont have brew installed:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

If you have brew installed:

brew install google-perftools

Reference: https://github.com/gperftools/gperftools

Samuel Philipp
  • 9,552
  • 12
  • 27
  • 45
Dee Dee
  • 11
  • 1