There are several graphical applications and command-line tools available for gathering performance metrics. Some performance tools are installed with Xcode. Others are available for download from the Apple Developer website.
Key Applications
Sensei is a multi-tool for Mac performance, with features spanning across both hardware and software. Here's how it compares to some of the other apps you may be familiar with. Concerning the first option, there is a fast and safe way to remove unnecessary files from your Mac — a powerful app CleanMyMac X. It finds above 74 GB of junk on an average computer, including old and large files, app leftovers and system clutter. It helps to boost computer performance, so you probably won’t even need to defrag a Mac.
Although Xcode comes with numerous applications for gathering performance data, there are a few that you will use more frequently than others.
Instruments
Instruments combines a set of powerful analysis tools with a graphical user interface to provide unprecedented information about the runtime behavior of your application. Rather than showing only one aspect of your program at a time, you configure each analysis session with one or more instruments, each of which gathers information about a particular performance metric. The data from all instruments is shown side-by-side, making it easier to correlate the data from one instrument to another and detect trends in your application’s behavior.
Among the types of metrics you can gather with the Instruments application are the following:
The performance of Core Data–based applications
Information about file system reads, writes, and other operations
Statistics relating to garbage-collected code
Information about graphics operations and performance
Statistics about object and other memory-related allocations
Information about memory leaks
Statistical samples of your application at runtime
Information about process-specific and system-level activity
Information about Java thread activity
Information about events dispatched by Cocoa
For a quick example of how to use Instruments, see Using Instruments. For detailed information, see Instruments User Guide.
Analysis Tools
Instruments is not the only analysis tool that can gather data about the performance of your app. Other analysis tools are geared towards finding specific types of performance problems. Table 3-1 lists the analysis tools installed with Xcode and available for download.
Tool | Description |
---|---|
OpenGL Driver Monitor | Gathers GPU-related performance data, including data related to VRAM usage, video bus traffic, and hardware stalls among others. You can use this information to identify the cause of temporary slowdowns or sporadic hesitations in your OpenGL application. This tool is part of the Graphics Tools for Xcode, available on the downloads page of the Apple Developer website. |
OpenGL Profiler | Creates a runtime profile of your OpenGL-based application. You can view function statistics and the call-trace history of your application’s OpenGL calls. This tool is part of the Graphics Tools for Xcode, available on the downloads page of the Apple Developer website. |
| Lists all This tool is installed in |
| Searches the memory space of a process for any allocated but unreferenced blocks of memory. This tool is installed in |
| Displays the virtual memory regions allocated to a specified process. You can use this tool to analyze the memory usage of your process. This tool is installed in |
Monitoring Tools
Monitoring tools are passive tools that gather data automatically. To use these tools, leave them running while you exercise the features of your program. You can then analyze the data generated by these tools to gain a better understanding of your program’s performance characteristics. Some programs should be left running all the time. Most others can be launched and terminated as needed to gather performance information. Table 3-2 lists the monitoring tools in OS X and available for download.
Tool | Description |
---|---|
Activity Monitor | Displays common usage statistics relating to memory and CPU usage for the currently running processes. You can also initiate the sampling of a process from this application. This tool provides information that is similar to that of the This tool is installed in |
Quartz Debug | Shows screen updates in real time by briefly flashing the areas being redrawn. You can use this tool to analyze your application’s drawing behavior. This tool is part of the Graphics Tools for Xcode, available on the downloads page of the Apple Developer website. |
| Displays an ongoing list of file-system activity, as generated by page faults and calls to file-system functions. You can use this tool to understand the file access patterns of your program. This tool is installed in |
| Displays an ongoing list of system call and page fault statistics. This tool is installed in |
| Displays common system usage statistics relating to memory and CPU usage for the currently running processes. This tool updates the information dynamically so that you can see trends at runtime. This tool is installed in |
Hardware Analysis Tools
The CHUD Tools include additional applications for doing hardware and low-level software analysis in OS X. (These tools are not able to analyze hardware running iOS.) Table 3-3 lists the tools that are part of this package, which is available on the downloads page of the Apple Developer website.
Name | Description |
---|---|
Reggie SE | Lets you examine and modify CPU and PCI configuration registers. |
| A command-line tool that analyzes TT6E instruction traces and presents detailed analyses and histograms. You can use this tool to detect bad instruction sequences, such as misaligned operands, data dependency stalls, and spilled loads. |
| A command-line tool that is a cycle-accurate simulator of the Motorola 7400 processor. This tool takes TT6 traces as input. (Available in OS X v10.5 and earlier.) |
| A command-line tool that is a cycle-accurate simulator of the IBM 970 processor. This tool takes TT6 traces as input. (Available in OS X v10.5 and earlier.) |
Additional Command-Line Tools
Table 3-4 lists some additional command-line tools that you can use to monitor and analyze performance in OS X. (These tools are not able to monitor and analyze applications running in iOS.) These tools are located in the /usr/bin/
directory and must be run from a command-line prompt. Most are installed along with the Xcode Tools. For information about these tools, see OS X Man Pages.
Name | Description |
---|---|
| Converts back and forth between a symbol name and the numeric address of that symbol in a running executable. |
| Displays the C-structures from an object file along with their member offset values. |
| Produces execution profiles based on an execution analysis of a program. |
| Shows the |
| Displays the symbol table information for one or more object files. |
| Displays the contents of a Mach-O executable in a more human-readable form |
| Displays information about the logical pages of a Mach-O executable file. |
| Parses the C structures from an object file and displays them along with their member offset values. |
| Produces an execution profile based on the execution analysis of a program. |
| Displays Mach virtual memory statistics, including the number of active, inactive, wired, and free pages. This tool also displays page fault and other activity information. |
Copyright © 2004, 2013 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2013-10-22
Download
Development Team
- Windows*: Joe Olivas, Timo Kleimola, Mark Price, Timothy McKay
- MacOS*: Patrick Konsor
Previous Contributors
- Windows*: Seung-Woo Kim, Karthik Krishnan, Vardhan Dugar, Joseph Jin-Sung Lee, Jun De Vega
Introduction
Intel® Power Gadget is a software-based power usage monitoring tool enabled for Intel® Core™ processors (from 2nd Generation up to 10th Generation Intel® Core™ processors). Intel® Atom™ processors are not supported. It is supported on Windows* and macOS* and includes an application, driver, and libraries to monitor and estimate real-time processor package power information in watts using the energy counters in the processor. With this release, we are providing functionality to evaluate power information on various platforms including notebooks, desktops and servers. Windows 7* and 32-bit versions of the Intel® Power Gadget for Windows* has ceased development from 3.0.7. Starting with version 3.5 and going forward, only the 64-bit version and Windows 8* will be supported.
Background
Traditional methods to estimate power/energy usage of the processor has always been a cumbersome task that included special purpose tools or instrumentation on the platform along with third party equipment. The motivation for the tool was to assist end-users, ISV’s, OEM’s, developers, and others interested in a more precise estimation of power from a software level without any H/W instrumentation.
New Features
In version 3.0 there are additional features that include estimation of power on multi-socket systems as well as externally callable APIs to extract power information within sections of code. The multi-socket support essentially evaluates the Energy MSR on a per-socket basis and provides an estimate of power draw per socket. The API layer is a set of libraries and dlls that can be called and offers the flexibility to build the tool within code sections of an application. Latest release also includes support for Windows 10*.
Perf Tool For Mac Os
Brief Description (Windows*)
Intel® Power Gadget 3.5 consists of the following components. Set of driver and libraries which access and post process the processor energy counter to calculate the power usage in Watts, temperate in Celsius and frequency in GHz (default install directory will be ~Program FilesIntelPower Gadget 3.5). A command line version of the tool (PowerLog3.0.exe) is also included
System Requirements (Windows*)
- Windows 8*
- Windows 10*
- Windows Server 2008, Windows Server 2012
- Microsoft .NET* Framework 4
- Microsoft Visual C++ 2017 Redistributable package
- 2nd Generation Intel® Core™ Processor or later, older processors not supported
- Single socket
- Multi-socket
System Requirements (MacOS*)
- macOS* 10.11 or later
- 2nd Generation Intel® Core™ processor or later
Known Limitations / Issues
- Graphs will not appear if your processor does not have the appropriate hardware counters
- Discrete graphics cards are not supported and GPU graphs will not appear unless Intel graphics is in use
- Windows 7* supported builds are below in the Archive section
Installation / Setup (Windows*)
- Run the msi package as an administrator. Accept the UAC, if one appears
- Follow the installer prompt instructions to complete installation
- .Net Framework 4 (will automatically be downloaded from Microsoft* site if not yet installed in your system) needs Internet connection
- Microsoft* Visual C++ 2017 Redistributable Package (will automatically get installed if not yet installed)
Installation / Setup (macOS*)
- Double click the downloaded DMG (Intel Power Gadget.dmg)
- Double click the package (Install Intel Power Gadget.pkg)
- Follow the installer prompt instructions to complete installation
On recent macOS versions, after installation users need to explicitly allow the Power Gadget driver to load:
- Open System Preferences, and click on 'Security and Privacy'
- Click the lock at the bottom of the page to unlock changes
- Click 'Allow' to allow system software from Intel Corporation:
- Restart your computer to apply the changes
On macOS Catalina (10.15), users may need to perform additional steps to enable the Power Gadget driver to automatically load (this is due to a bug in macOS).
- Open the Terminal application
- Enter the following command, and press Enter (requires a password to complete):
- Restart your computer to apply the changes
Usages (Windows*)
Common use of Intel® Power Gadget is to monitor energy usage of the processor
Perf Tool For Mac Windows 10
- Provides processor power (Watts), temperature (Celsius) and frequency (MHz) in real-time via graph displayed in the GUI
- Let you log the power and frequency measurements and save it in a csv format.
- Double click on the desktop shortcut and the GUI will launch
- Drag to move the GUI.
- Right click the GUI and a pop-up menu will show up allowing you to choose options or close the application. Options have the following parameters. Click “Start Log” button in the GUI to start logging. Press the same button “Stop Log” to stop logging. While it’s logging, red label “REC” will blink in the power chart area.
- You can choose to add time-stamp to the log file name or not.
- You can choose the log file name.
- You can choose to resize the GUI from 100% to 300% by dragging the slider and testing the new size with the “Apply Size” button and accept the changes by pressing “Ok”.
- Screen Update Resolution lets you change how often the GUI is updated at runtime. This may range from 50 ms to 1000 ms. (Default set to 1000 ms)
- Log Sampling Resolution lets you change the logging sampling resolution ranging from 1 ms to 1000 ms. (Default set to 100 ms)
- In a multi-socket system, you can choose which package information to display in the GUI. The log will record all package information in a csv file.
- Click 'Start Log' button in the GUI to start logging. Press the same button 'Stop Log' to stop logging. While it's logging, red label 'REC' will blink in the power chart area
Using Intel® Power Gadget 3.0 in a script
In order to start and stop the logging in a script, first launch the GUI as usual.
- At the beginning of the script, call 'IntelPowerGadget.exe -start' and it will trigger the logging in the GUI.
- At the end of the script, call “IntelPowerGadget.exe -stop” and it will stop the logging.
The parameters for the log are based on the options set in the GUI.
PowerLog3.0
PowerLog3.0.exe is the command line version of Intel® Power Gadget in logging power usage
Usage:
- Log power data to logfile for a period of time:
- Start a command a log power data to logfile until the command finish:
Logfile data
Logfile will include the elapsed timed, package power limit, processor frequency, GT frequency, processor temperature, average and cumulative power of the processor
- Processor Energy (Total energy of the processor) = IA Energy + GT Energy (if applicable) + Others (not measured)
- IA Energy (Energy of the CPU/processor cores)
- GT Energy (Energy of the processor graphics) – If applicable , some processors for desktops and servers don’t have it or may have use discrete graphics
Only works on 2nd Generation Intel® Core™ processor family or newer. Atom processors not yet supported.
Use only 32-bit installer for 32-bit OS and 64-bit installer for 64-bit OS
Application may hang after running for a long period of time (just close and restart application)
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
This document contains information on products in the design phase of development.
All products, platforms, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice. All dates specified are target dates, are provided for planning purposes only and are subject to change.
This document contains information on products in the design phase of development. Do not finalize a design with this information. Revised information will be published when the product is available. Verify with your local sales office that you have the latest datasheet before finalizing a design.
Code names featured are used internally within Intel to identify products that are in development and not yet publicly announced for release. Customers, licensees and other third parties are not authorized by Intel to use code names in advertising, promotion or marketing of any product or services and any such use of Intel's internal code names is at the sole risk of the user.
Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries.
*Other names and brands may be claimed as the property of others.
Copyright © 2019, Intel Corporation. All rights reserved.
Intel® Power Gadget also provides a C/C++ Application Programming Interface (API) for accessing this power and frequency data in your program; the API is supported on Windows and Mac OS X. For more information on the API's, see:
For Mac Using the Intel® Power Gadget API on Mac OS X
For Windows Using the Intel® Power Gadget API on Windows
End User License Agreement included in Windows* download
Notices
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked 'reserved' or 'undefined.' Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.