Minion Beta! - Help us test our new AddOn updater. Get it now!
Download
(16 Kb)
Download
Updated: 11-01-14 01:26 PM
Pictures
File Info
Compatibility:
Warlords of Draenor Pre-Patch (6.0.3)
Warlords of Draenor Pre-Patch (6.0.2)
Siege of Orgrimmar (5.4)
Escalation (5.3)
Updated:11-01-14 01:26 PM
Created:03-01-10 09:14 PM
Downloads:34,116
Favorites:438
MD5:
Categories:Data Broker, Other, ToolTip, Plug-Ins & Patches
6.0.3

shPerformance (mem/fps/ms)  Popular! (More than 5000 hits)

Version: r5.1
by: shUI [More]

shPerformance
An extremely light-weight and beautiful data broker addon that monitors system information and works right out of the box!

NOTE: I will not be updating or maintaining my secondary patch addon shMem. If you are interested in updating/maintaining it, send me a message.

Why use this addon instead of some of the other famous system monitors? Simple: elegance, ease of use, and efficiency. Other addons similar to shPerformance are extremely "busy" and highly inefficient when it comes to coding.

IMPORTANT: You must have a data broker display addon in order to enable this addon. I recommend Docking Station or you can find a list of other LDB display addons here. Changing the fonts of the tooltips is handled via a tooltip addon. I highly recommend using TipTac.

This addon displays and has the following options:

  • Frames per second (fps)
  • Latency (ms) (both HOME/local and WORLD ms)
  • Addon memory usage (mb or kb)
  • Option that allows sorting in two different ways: alphabetically or by descending memory usage
  • Option to change update period (seconds) and/or memory threshold (kb)
  • Option to change color gradient variable (for higher usage systems) and number of max addons displayed
I was completely baffled when I saw some coding of other author's data broker addons that displayed this information. My goals in creating this addon are:
  • Make the code as efficient as possible and to maintain < 30kb of memory usage
  • Be visually appealing and easy to read
  • Be updated in real time via the tooltip AND data broker text
  • Display relevant data that is important (NO FLUFF or Techno Babble)
  • Allow user to decide on sorting methods, memory threshold, and updating time
**For more technical information, details, and how to change settings please see LUA file within addon folder labeled shPerformance.lua or shMem.lua

Disclaimer: I want to thank Tekkub for his fantastic addon: picoFPS for inspiration and some code ideas, kudos!

Bug Reports and/or Requests:
All bug reports, requests (with this addon or another), errors, suggestions, and problems will be handled via the forum-comments page.

If you liked this mod, please check out my other addons:
shClock: Data Broker simple clock
shNameplates: Lightweight, simple, and sexy nameplates

Click here to lend your support!

r5.1
- Code clean up of deprecated items
- Fixed OnUpdate/OnEnter event handlers to properly render tooltip in right place
-----------------------
r5.0
- Updated minor issue with getting addon list and putting into table to manipulate
- TOC Bump
-----------------------
r4.1
- TOC Bump
-----------------------
r4.0
- ToC bump: got it right this time and set to 50001
- Optimized code with a few new tricks!
------------------------
r3.0
- ToC bump -> 5.0
- Should be working fine for MoP
------------------------
r2.6b
- ToC bump -> 4.3
-------------------------
r2.6a
- ToC bump
-------------------------
r2.6
- TOC update to 4.1
- Minor improvement in OnUpdate function
--------------------------
r2.5
- More optimizations to code, specifically removed the redundant IsAddOnLoaded() function call
- ADDED: Local/Home ms to latency tooltip
- Changed how the latency LDB text was display to show XXms/XX(w) ms instead of the stupid hyphen
--------------------------
r2.4
- Big code clean up and localized a lot of code
- You gotta ask yourself in LUA, are you local ;) -> Thanks Treeston
---------------------------
r2.3
- Changed the latency db text to make it look better and clearly decipher between world and local ms
---------------------------
r2.2
- Cleaned up some code and reduced the coloring of unimportant tooltip items
- ADDED: latency for both HOME and WORLD server ms to show in real time on databroker
----------------------------
r2.1
- Cleaned up unused functions
- REMOVED formatMem2 function and integrated it into formatMem
-----------------------------
r2.0
- Cleaned up coding and added shMem LDB as a separate module
- ADDED code to see if shMem is loaded and if it is loaded, to only show memory detailed tooltip over shMem LDB instead of shPerformance LDB (MUST have both addons installed - as separate addon folders)
------------------------------
r1.1
- Small update to ToC file and removed the ##Version attribute
- Fixed up some function names so I can work on big update...
------------------------------
r1 - new updating system (newer than v8.1)
- REMOVED the shMem data broker completely (again, sigh I know). But it will run better this way with a lot less lag. If you really want to see your memory usage, just hover over and see the tooltip.
- ADDED line at bottom of tooltip to show how many addons are "hidden" (not above the memory threshold) and what the total amount of memory used for those addons.
- Optimized some more code
-------------------------------
v8.1
- ADDED the shMem broker back
- After lots of hours trying to find a work around for the jittering/fps decrease, I have figured out a way to decrease it by a lot. NOTE: for having an addon like this calls the UpdateAddOnMemoryUsage() function a lot, it's natural to have some cpu/memory usage. I minimized that by making the broker update slower than if you were hovered over it.
- Optimized lots of code with major rewrites
--------------------------------
v8.0
- MAJOR update: overhauled OnUpdate methods for LDB's (this was causing too many performance issues and jittering on lots of computers)
- REMOVED memory LDB and added all pertaining information to ONLY display on FPS broker
- Optimized some more code to fit the changes
- REMOVED "wantOnClickUpdating", thought the addon was getting too "busy" with too many options. Now the tooltip will ALWAYS update in real time and onclick. However, OnUpdate now doesn't call the UpdateAddOnMemoryUsage() and iterates over a table (saving a lot of CPU cycles). This will only happen by hovering over the LDB
- REMOVED option to show TOTAL UI memory in LDB (see above)
----------------------------------
v6.9
- Fixed minor error when using the coloring option and cleaned up initial addon table
-----------------------------------
v6.8
- Fixed color scheme to show coloring of addon names based on the ToC file or can use the coloring option
-----------------------------------
v6.7
- Optimized some small snippets of code
- Returned to wantonclickupdating = false default so the tooltip updates in real time (per popular demand)
-----------------------------------
v6.5
- Updated ToC for 4.0.1
------------------------------------
v6.3
- Fixed bug that was not allowing the fps and latency databroker objects to update correctly
------------------------------------
v6.2
- Minor update: reset a bunch of defaults to take less memory and fix the jittering that some people are having (just a temporary fix)
- Fixed some code to allow the broker object to keep updating every 2 seconds and not based on the UPDATEPERIOD variable
-------------------------------------
v6.1
- Removed second set of icons (no one wanted them)
- Updated code and added IsAddOnLoaded() function call to clean up and optimize
- Updated ToC file
--------------------------------------
v6.0
- Updated tooltip to make it display shPerformance addon memory usage by itself at the bottom!
- ADDED fps and latency display on tooltip itself for users who don't want to turn on the other databroker objects
- ADDED option to turn off coloring of the addon names (but the memory usage stays the same)
- Updated some function calls and minor cleanup of code
---------------------------------------
v5.1
- Updated TOC file
- Added another set of icons that can be changed via lua file (check for easy instructions)
- Fixed some small issues with formatting
---------------------------------------
v5.0
- Updated TOC a bit
- Due to popular demand, the default sorting method is back to alpha order
- Fixed the formatter to change 1000kb to 1.0mb (instead of < 1024)
----------------------------------------
v4.9
- Updated TOC finally
- Changed some redundant local variable calls and tried to clean up some code
- Changed default update time to every 1 second instead of 2 seconds
- Changed memory threshold back up to 60kb
-----------------------------------------

v4.8
- Changed default values for better optimization
-----------------------------------------
v4.7
- Made some more locals..optimized
------------------------------------------
v4.6
- Further optimized coding and got rid of some unnecessary global calls
------------------------------------------
v4.5
- Cosmetic changes and visual optimization
- Default, out of the box, changes to match user's needs
------------------------------------------
v4.4
- Updated garbage collecting methods and optimized function calls
- Added a more appealing garbage collecting display at the bottom of tooltip
- Added error handling if LibStub is not installed
------------------------------------------
v4.3
- Fixed information of options in lua file to make a bit more sense
- Added color gradient and max addon displaye options (CHECK LUA FILE)
- Added "Garbage churn" display similar to picoFPS' option at bottom of tooltip
-------------------------------------------
v4.2
- Removed garbage collection when OnLeave event is triggered
--------------------------------------------
v4.0
- Added garbage collection amount into chatframe when databroker clicked
- Cosmetic and visual changes to make it a bit easier to read
- COMPLETELY revamped several functions and optimized even further than before, should see a big change in overall efficiency.
--------------------------------------------
v3.2
- Added some color changes to mem list
- Optimized onclick function to call onenter function, reduces mem usage by 25%
--------------------------------------------
v3.1
- Added TOTAL UI memory usage line in shMem tooltip
- Cosmetic coloring of items
- Optimized "OnEnter" and "OnClick": external function calls
--------------------------------------------
v2.3
- Fixed default settings to emulate what most people have.
--------------------------------------------
v2.1
- Cosmetic changes and optimized search function
--------------------------------------------
v2.0
- Added boolean statement in config section of shPerformance.lua: IF YOU WANT to disable automatic updating of tooltip (and possible frame 'stuttering' just set this boolean value to "true"
--------------------------------------------
v1.2
- Changed UPDATEPERIOD from 0.5 seconds to 2 seconds to improve performance on some machines
NOTE: this can always be changed manually by changing the UPDATEPERIOD variable at top of LUA file
--------------------------------------------
v1.1
- Added icons for each separate broker
- Fixed ToC file up a bit
- New screenshots
- Fixed some wording to make it consistent with rest of tootips
Optional Files (1)
File Name
Version
Size
Author
Date
Type
v1.1
12kB
02-22-11 11:36 PM
Patch


Archived Files (3)
File Name
Version
Size
Author
Date
r5.0
16kB
shUI
10-25-14 12:31 PM
r4.1
16kB
shUI
11-27-12 06:01 PM
r4.0
16kB
shUI
10-20-12 09:02 PM


Post A Reply Comment Options
Unread 11-06-10, 09:05 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Originally posted by akgis
Its 8.1 slower than 8.0 because of the shMem back? Even with the optimizations.

Tbh as it was in 8.0 was perfect with addon mem added to FPS tooltip, I dont really see the need for a broker item to show total mem usage every time. Mem usage is a good thing to know but its not something we have to see every time. But since its back on its own broker item we need to have it shown if we want to see the mem usage on the tooltip.

I respect the fact that ppl want to see they total mem usage but maybe that should be a different addon. FPS(with mem usage on tooltip) + latency was perfect as 8.0 version.

Thanks for your work on this addon.
I, personally, completely agree with you. Maybe I'll create a separate addon for shMemory. That might be something to think about, b/c honestly...I have tried to optimize it as best I can, but the problem lies with calling UpdateAddOnMemoryUsage(). Even with it throttled, it's annoying.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 11-06-10, 07:17 AM  
akgis
A Fallenroot Satyr
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 78
Uploads: 4
Its 8.1 slower than 8.0 because of the shMem back? Even with the optimizations.

Tbh as it was in 8.0 was perfect with addon mem added to FPS tooltip, I dont really see the need for a broker item to show total mem usage every time. Mem usage is a good thing to know but its not something we have to see every time. But since its back on its own broker item we need to have it shown if we want to see the mem usage on the tooltip.

I respect the fact that ppl want to see they total mem usage but maybe that should be a different addon. FPS(with mem usage on tooltip) + latency was perfect as 8.0 version.

Thanks for your work on this addon.
__________________
akgis is offline Report comment to moderator  
Reply With Quote
Unread 11-04-10, 12:47 AM  
speak
A Wyrmkin Dreamwalker
 
speak's Avatar

Forum posts: 57
File comments: 186
Uploads: 0
Thanks
speak is offline Report comment to moderator  
Reply With Quote
Unread 11-03-10, 08:21 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Re: Re: Re: v8 broken

Originally posted by speak
oh.. is there a way to have memory show separately on the LDB? it sounds like it's only on mouseover of the fps module? i don't want to mouseover to find out mem usage, i like it at-a-glance.
or do you have a separate mod like, sh_mem? :P im rolled back to the previous version for now. thanks!
Unfortunately, I have decided against having a module that does that b/c of performance issues and jittering that a lot of people are dealing with. Depending, on if I can figure out more efficient coding, if a lot of people request it then I might create shMem as a separate addon in the future. Keep your eyes open and just use the older version for now.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 11-03-10, 08:18 PM  
speak
A Wyrmkin Dreamwalker
 
speak's Avatar

Forum posts: 57
File comments: 186
Uploads: 0
Re: Re: v8 broken

Originally posted by shUI
Please see change log...
oh.. is there a way to have memory show separately on the LDB? it sounds like it's only on mouseover of the fps module? i don't want to mouseover to find out mem usage, i like it at-a-glance.
or do you have a separate mod like, sh_mem? :P im rolled back to the previous version for now. thanks!
Last edited by speak : 11-03-10 at 08:20 PM.
speak is offline Report comment to moderator  
Reply With Quote
Unread 11-02-10, 06:46 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Re: v8 broken

Originally posted by speak
v8 doesn't work right. i delete the old version folder completely and install fresh every time.
on login, it only shows my latency. fine, i go to fps and enable that - works fine. i look at the memory one and it is disabled, but it's greyed out in the list and not showing on my bar. i click disable, and then enable, and it throws an error.
Code:
"DockingStation-0.4.6 (Beta)\\FontStrings.lua:139: attempt to index local 'data' (a nil value)\nDockingStation-0.4.6 (Beta)\\Plugins.lua:177: in function `UpdateChildren'\nDockingStation-0.4.6 (Beta)\\Plugins.lua:119: in function `Refresh'\nDockingStation-0.4.6 (Beta)\\Plugins.lua:154: in function `SetState'\nDockingStation-0.4.6 (Beta)\\Plugins.lua:521: in function `CreatePlugin'\nDockingStation_Config\\Core.lua:427: in function <Interface\\AddOns\\DockingStation_Config\\Core.lua:419>\n(tail call): ?:\n<in C code>: ?\n<string>:\"safecall Dispatcher[2]\":9: in function <[string \"safecall Dispatcher[2]\"]:5>\n(tail call): ?:\nAceConfigDialog-3.0-50:797: in function <...nfig-3.0\\AceConfigDialog-3.0\\AceConfigDialog-3.0.lua:612>\n(tail call): ?:\n<in C code>: ?\n<string>:\"safecall Dispatcher[3]\":9: in function <[string \"safecall Dispatcher[3]\"]:5>\n(tail call): ?:\nAceGUI-3.0-33 (Ace3):314: in function `Fire'\n...ns\\Ace3\\AceGUI-3.0\\widgets\\AceGUIWidget-CheckBox.lua:68: in function <...ns\\Ace3\\AceGU"
Please see change log...
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 11-02-10, 06:30 PM  
speak
A Wyrmkin Dreamwalker
 
speak's Avatar

Forum posts: 57
File comments: 186
Uploads: 0
v8 broken

v8 doesn't work right. i delete the old version folder completely and install fresh every time.
on login, it only shows my latency. fine, i go to fps and enable that - works fine. i look at the memory one and it is disabled, but it's greyed out in the list and not showing on my bar. i click disable, and then enable, and it throws an error.
Code:
"DockingStation-0.4.6 (Beta)\\FontStrings.lua:139: attempt to index local 'data' (a nil value)\nDockingStation-0.4.6 (Beta)\\Plugins.lua:177: in function `UpdateChildren'\nDockingStation-0.4.6 (Beta)\\Plugins.lua:119: in function `Refresh'\nDockingStation-0.4.6 (Beta)\\Plugins.lua:154: in function `SetState'\nDockingStation-0.4.6 (Beta)\\Plugins.lua:521: in function `CreatePlugin'\nDockingStation_Config\\Core.lua:427: in function <Interface\\AddOns\\DockingStation_Config\\Core.lua:419>\n(tail call): ?:\n<in C code>: ?\n<string>:\"safecall Dispatcher[2]\":9: in function <[string \"safecall Dispatcher[2]\"]:5>\n(tail call): ?:\nAceConfigDialog-3.0-50:797: in function <...nfig-3.0\\AceConfigDialog-3.0\\AceConfigDialog-3.0.lua:612>\n(tail call): ?:\n<in C code>: ?\n<string>:\"safecall Dispatcher[3]\":9: in function <[string \"safecall Dispatcher[3]\"]:5>\n(tail call): ?:\nAceGUI-3.0-33 (Ace3):314: in function `Fire'\n...ns\\Ace3\\AceGUI-3.0\\widgets\\AceGUIWidget-CheckBox.lua:68: in function <...ns\\Ace3\\AceGU"
speak is offline Report comment to moderator  
Reply With Quote
Unread 11-01-10, 07:17 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Originally posted by G4il1
I have the same problem as jrkid and the setting you are referring to do no difference for me what so ever. Also it was already set to:
wantOnClickUpdating = true
in the latest version.

FYI: I have about 80 addons using around 80-90 mb and I am using Chocolate Bar as LDB Display addon.
When I use Fubar Performance_Fu (together with fubar2broker) I have not this problem but there are other errors. I have also tried statblock_CPU, Memory and Latency and they work but are so ugly ;-)

Also I found a lot of talks about the problem in this similar addon's comments:
http://www.wowinterface.com/download....html#comments

Don't know if that can help though
This problem has been an ongoing issue that I have been dealing with for a long time. I am in the process of testing a new update to shPerformance that I think will solve the problem, but will remove the addon memory LDB, and you can only see your addon mem usage on tooltip hover. This is the only way I can figure out how to deal with this problem. All the other well wrote addons (by tekkub, tuk, etc) don't display the addon mem total in real time, it is only calculated by hovering over the tooltip.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 11-01-10, 06:38 AM  
G4il1
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 1
I have the same problem as jrkid and the setting you are referring to do no difference for me what so ever. Also it was already set to:
wantOnClickUpdating = true
in the latest version.

FYI: I have about 80 addons using around 80-90 mb and I am using Chocolate Bar as LDB Display addon.
When I use Fubar Performance_Fu (together with fubar2broker) I have not this problem but there are other errors. I have also tried statblock_CPU, Memory and Latency and they work but are so ugly ;-)

Also I found a lot of talks about the problem in this similar addon's comments:
http://www.wowinterface.com/download....html#comments

Don't know if that can help though
G4il1 is offline Report comment to moderator  
Reply With Quote
Unread 10-28-10, 09:49 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Re: Re: Re: Some wield problem

Originally posted by jrkid
I did, it seems not work for me
Hmm, it's not working? How many addons do you have? What display addon are you using for your LDB?
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 10-27-10, 11:06 PM  
jrkid
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
Re: Re: Some wield problem

I did, it seems not work for me

Originally posted by shUI
Hey bud, I would go into the shPerformance.lua file and chance the setting in the config section:

Code:
wantOnClickUpdating = true (instead of false)
jrkid is offline Report comment to moderator  
Reply With Quote
Unread 10-27-10, 07:35 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Originally posted by Opaque
Would love to see this mod also display the time.
Like server/local time? Like another ldb?
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 10-27-10, 07:06 PM  
Opaque
A Fallenroot Satyr
 
Opaque's Avatar

Forum posts: 23
File comments: 138
Uploads: 0
Would love to see this mod also display the time.
__________________
Opaque is offline Report comment to moderator  
Reply With Quote
Unread 10-27-10, 09:28 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 334
Uploads: 5
Re: Some wield problem

Originally posted by jrkid
While I use this addon, my screen "pulse" about every second. Is that normal or just my setting wrong?
Hey bud, I would go into the shPerformance.lua file and chance the setting in the config section:

Code:
wantOnClickUpdating = true (instead of false)
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
shUI is offline Report comment to moderator  
Reply With Quote
Unread 10-27-10, 04:07 AM  
jrkid
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
Some wield problem

While I use this addon, my screen "pulse" about every second. Is that normal or just my setting wrong?
jrkid is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: