KLHPerformanceMonitor (KPM) is an addon that profiles other addons. That is, it tells you how much proccessor time and garbage memory each of your addons are using. Garbage refers to table memory (heap allocated) that is no longer referenced, becoming unused and hence "garbage".
KPM is idle when you login and has to be activated before it will start collecting data. To activate KPM, run the command
/kpm start
Depending on the number of active Frames loaded, KPM may take a while to load. However, KPM is designed to fragment the loading operation so as not to interrupt the user while it is loading. The loading status is indicated by a progress bar and message in a small window in the center of your screen.
Once KPM is active, you can view the accumulated data by running the command
/kpm data
A window is shown with a list of the Addons that are being monitored. Click on one of the items in the list to view the details of that Addon. KPM shows the processor usage in milliseconds and the garbage creation in Kilobytes. Each item is split into three categories, "Updates", "Events", and "Total". "Updates" refers to methods that run periodically. "Events" refers to methods that run in response to system events.
The main reason is for performance reasons. Blizzard's CPU Profiling tries to do too much and as a result has a large performance impact on your system. Because it tracks the time taken to call every single function, including common functions like string.* and math.*, Blizzard profiling decreases your fps noticably. On the other hand, KPM attaches to critical insertion points only. In this way it tracks the information you are interested in - Addon-wide processor and memory values - while having a negligable effect on overall system performance.
In addition, Blizzard Profiling can't be turned off without restarting Wow.exe. KPM starts idle unlses it is activated by the user.
The second reason is that KPM data is more representative of real Addon performance. Because Blizzard profiling is attached so deeply into the LUA system, it can cause massive performance distortions. Individual addons may run 5 to 10 times slower depending on their architecture.
On the other hand, KPM has a relatively light hook on the system. This means that the numbers reported by KPM are an accurate reflection of your addon performance without the profiling overhead.
Lastly, KPM gives you access to data that the Blizzard Profiler can't - garbage creation. While the garbage collection of the LUA environment has improved greatly, if an addon is creating excessive garbage it will result in amortised processor time that is not attributed to that addon. KPM reveals these trouble-causing addons to help fine-tune your system.
What's New (since the old version of KPM)?
1) The previous version of KPM was designed before WoW 2.0, and given only a dodgy hack job when 2.0 came in. As a result the old version could cause tainting, which causes core addon functions to stop working. The new version has a foolproof method of identifying Blizzard frames, therefore it won't hook protected functions and cause problems.
2) The new version has a greatly improved frame identification technique. Previously KPM grouped frames by their name, but it could be empty in which case KPM had trouble identifying it. New technology allows KPM to work out the name of the Addon that owns every frame, giving perfect identification.
3) The new version comes with a point and click graphical interface to display the information in a more helpful manner.
4) The new version of KPM separates OnUpdate and OnEvent data into separate groups.
Installation Guide
- Exit "World of Warcraft" completely
- Download the mod you want to install
- Make a folder on your desktop called "My Mods"
- Save the .zip/.rar files to this folder.
- If, when you try to download the file, it automatically "opens" it... you need to RIGHT click on the link and "save as..." or "Save Target As".
- Extract the file - commonly known as 'unzipping'
Do this ONE FILE AT A TIME!
- Windows
- Windows XP has a built in ZIP extractor. Double click on the file to open it, inside should be the file or folders needed. Copy these outside to the "My Mods" folder.
- WinRAR: Right click the file, select "Extract Here"
- WinZip: You MUST make sure the option to "Use Folder Names" is CHECKED or it will just extract the files and not make the proper folders how the Authors designed
- Mac Users
- StuffitExpander: Double click the archive to extract it to a folder in the current directory.
- Verify your WoW Installation Path
That is where you are running WoW from and THAT is where you need to install your mods.
- Move to the Addon folder
- Open your World of Warcraft folder. (default is C:\Program Files\World of Warcraft\)
- Go into the "Interface" folder.
- Go into the "AddOns" folder.
- In a new window, open the "My Mods" folder.
- The "My Mods" folder should have the "Addonname" folder in it.
- Move the "Addonname" folder into the "AddOns" folder
- Start World of Warcraft
- Make sure AddOns are installed
- Log in
- At the Character Select screen, look in lower left corner for the "addons" button.
- If button is there: make sure all the mods you installed are listed and make sure "load out of date addons" is checked.
- If the button is NOT there: means you did not install the addons properly. Look at the above screenshots. Try repeating the steps or getting someone who knows more about computers than you do to help.
Translations
When you download a mod, please be sure that the mod is compatible with your translation of wow. Some mods only work on the US versions, while some only work on some of the various European versions. These variations are called "Localizations".
TOC Numbers (Out of Date Mods)
When Blizzard patches WoW, they change the Interface number. This means that all mods will be "out of date" unless or until the author releases a new version for that interface. Some people go into the .toc files and update the numbers themselves, but this is STRONGLY advised against as it will cause problems locating possible incompatibilities addons. When you log into WoW after a patch, you DO NOT have to delete your interface directory. All you have to do is simply tell WoW to ignore the interface numbers and load all the mods anyway. All you have to do is, while at the "character select" screen, look in the lower left corner and click on the "addons" button. A window will pop up listing all your installed mods.
If you look in the upper left corner of that window there should be a box that says "Load Out of Date AddOns". You want to CHECK this box. Now simply go into WoW normally and all your mods should load. As of the 1.9 patch, you will have to do this after EVERY patch/update that Blizzard posts! If you encounter any problems with a mod after a patch, please be sure to let the author of the mod know so they can fix it.
See also: About "Out Of Date AddOns"
Mac Support
WoW addons are not platformed based. As such, they can be used on either Mac or PC. You can extract both .zip and .rar files on a Mac using StuffitExpander.
Directory Structure
World of Warcraft
|_ Interface
|_AddOns
|_*AddonName*
|_ *AddonName*.toc
|_ *AddonName*.xml
|_ *AddonName*.lua
|_ (possibly others as well)...