Download
(16 Kb)
Download
Updated: 11-27-12 05:01 PM
Pictures
File Info
Compatibility:
Landfall (5.1)
Mists of Pandaria (5.0.4)
Updated:11-27-12 05:01 PM
Created:03-01-10 08:14 PM
Downloads:33,109
Favorites:439
MD5:
Categories:Data Broker, Other, ToolTip, Plug-Ins & Patches
shPerformance (mem/fps/ms)  Popular! (More than 5000 hits)
Version: r4.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 have added an optional patch to add shMem as a completely separate addon/module. If you want your memory to be shown in your databroker display, install the optional file labeled "shMem". If not, just use the updated shPerformance to show fps and latency with a detailed tooltip displaying memory

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!
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 10:36 PM
Patch


Archived Files (2)
File Name
Version
Size
Author
Date
r4.0
16kB
shUI
10-20-12 09:02 PM
r3.0
16kB
shUI
09-13-12 08:28 PM


Post A Reply Comment Options
Old 03-07-10, 04:00 PM  
Morgalm
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 184
Uploads: 4
Stuttering

Tried the mod and I was getting the stuttering (bad stuttering) without going anywhere near the tooltip. Just running around dalaran. Immediately noticable and I have a high end machine. At that point I still had broker_CPU on as well so I will try turn it off and let you know if that makes a difference.

Edit: Also if you have alot of addons your tooltip becomes too large for the screen and runs offscreen and is useless.
Last edited by Morgalm : 03-07-10 at 04:01 PM.
Morgalm is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 01:37 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Originally posted by seebs
I definitely see the stuttering. I'd been using Broker_CPU, and that seems to be able to update its memory statistics without a stutter. I dunno what causes the stutter; it's a pretty noticeable pause, though, every few seconds. And the thing is, I really do want the data to update automatically. I just want it to somehow do so without actually dropping a couple of frames to do so.
I'm not sure why it does that on some machines. I'm still debugging and testing, b/c on my machine I see no problems at all. I looked at the Broker_CPU addon as well as some other famous ones, and I can't see a major difference in the coding. I feel that my coding is much more efficient (Broker_CPU runs at around 110kb where mine runes between 20 and 26kb). I'll keep testing but unfortunately I can't make everyone happy

ALSO, seebs...does the stuttering happen when the tooltip is hidden or JUST when it is visible?
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Last edited by shUI : 03-07-10 at 02:01 PM.
shUI is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 01:35 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Re: A new feature?

Originally posted by thefrogi
Loving the addon, you've done a great job of improving upon PicoFPS. One thing I would like to see is, you have the option to show addons that are doing more than a certain KB. What about a option to show the 10, 20, 40 highest memory using addons. I think this would be easier to see a ever changing list but that is just my personal preference.

Also I've always wondered why anything over 40mb for total addons red? Whats so special about 40? If it relies on the computer than what about adding a option of changing that based upon the users PC? Just an idea.

Keep up the excellent work!
Thanks very much for the compliments! I was thinking about adding another config option that allows for cutting off the process after a certain number of addons. However, the only problem that comes into play is when people have their addon sorted in alphabetical order. So for example. I want to show only 20 of the top addons. If I was sorting via alphabetical order, it will show 20 addons but the top addons in alphabetical order. I can add this option really easily, but I would have to have a disclaimer hehe. I hope this makes sense. I will also add an option where you can change the color gradient variable. I'll have it set at a default of 40, and everything will dynamically change by it. For example, if I have colorgradientvariable = 50, that means that the color of the addon will changed based on how close/far it is away from 50mb...but then the total addon variable will be equal to colorgradientvariable + 30, for example. Look for this in the next update.

@Skylinee: It is a typo and I will fix it in the next update. As far as the idea of having the change in memory usage by last garbage collection, it is a good idea...but very memory intensive. I want the addon to stay as efficient as possible and stick to my goals and keep the technical jargin out of the addon's tooltip. You and I understand it, but other (the majority) might not. But I do have an idea to give you a similar output to evaluate. I was thinking about adding a "Garbage churn" line in the tooltip similar to picoFPS' option. This will give you the overall change-in garbage since the last update.

@akgis: I understand where you are coming from bud, however adding to the tooltip in a way is a complete redesign b/c the data broker objects aren't going to be used. I have disagree with you, but maybe it's something to think about in future addon creation.
__________________
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
Old 03-07-10, 01:32 PM  
seebs
Premium Member
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 155
File comments: 185
Uploads: 5
I definitely see the stuttering. I'd been using Broker_CPU, and that seems to be able to update its memory statistics without a stutter. I dunno what causes the stutter; it's a pretty noticeable pause, though, every few seconds. And the thing is, I really do want the data to update automatically. I just want it to somehow do so without actually dropping a couple of frames to do so.
seebs is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 12:47 PM  
akgis
A Fallenroot Satyr
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 78
Uploads: 4
Originally posted by Skylinee
No, it's possible to just split up the addon to show latency/fps or memory. Certain people (like me), need the broker to show memory.
yes fair enough I just gave a sugestion for a option not a redesign of the addon.
akgis is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 11:56 AM  
Skylinee
A Murloc Raider

Forum posts: 5
File comments: 390
Uploads: 0
Originally posted by akgis
Any chance of having a option for latency/Mem added to the FPS tooltip for ppl that dont want 3 diferent tooltips or just want 1 Broker active. I ask cause I dont want my Latency showing as a Broker item I find distracting cause when I have it active I tend to look at it like every min or so... I like to have it in a Tooltip so I can check when Iam not in combat. I know its kinda a retarded habit but Iam like that.

In sum its a all information in 1 tooltip with the option to specify what items you want showing as Broker Text.

Example

Broker Should be (Icon) 100 FPS

Tool tip would be

Latency : XXms
Addon Mem: XXX MB

Addons----

Addon X using Y Mem.
Addon X using Y Mem.
Addon X using Y Mem
etc
etc
etc
No, it's possible to just split up the addon to show latency/fps or memory. Certain people (like me), need the broker to show memory.
Last edited by Skylinee : 03-07-10 at 11:56 AM.
Skylinee is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 11:45 AM  
akgis
A Fallenroot Satyr
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 78
Uploads: 4
Any chance of having a option for latency/Mem added to the FPS tooltip for ppl that dont want 3 diferent tooltips or just want 1 Broker active. I ask cause I dont want my Latency showing as a Broker item I find distracting cause when I have it active I tend to look at it like every min or so... I like to have it in a Tooltip so I can check when Iam not in combat. I know its kinda a retarded habit but Iam like that.

In sum its a all information in 1 tooltip with the option to specify what items you want showing as Broker Text.

Example

Broker Should be (Icon) 100 FPS

Tool tip would be

Latency : XXms
Addon Mem: XXX MB

Addons----

Addon X using Y Mem.
Addon X using Y Mem.
Addon X using Y Mem
etc
etc
etc
Last edited by akgis : 03-07-10 at 11:51 AM.
akgis is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 11:44 AM  
Skylinee
A Murloc Raider

Forum posts: 5
File comments: 390
Uploads: 0
''local wantOnClickUpdating = true -->default value allows continious updating of tooltip in real time, when set to "FALSE" updating of tooltip will happen when you click data broker''


Is this a typo maybe? It's set to true atm, and the tooltip isn't updated while i'm hovering over it. I guess it needs to be set to false for tooltip updating to be dynamic.


Also a feature request. Is it possible to add (without bloating the addon in any way), an option to show increased memory behind each addon? For example:


Addon A (+130kb)
Addon B (+54kb)


etc etc. Basically to show how much memory an addon has increased since last garbagecollect.
Last edited by Skylinee : 03-07-10 at 11:58 AM.
Skylinee is offline Report comment to moderator  
Reply With Quote
Old 03-07-10, 05:45 AM  
thefrogi
A Murloc Raider

Forum posts: 7
File comments: 15
Uploads: 0
A new feature?

Loving the addon, you've done a great job of improving upon PicoFPS. One thing I would like to see is, you have the option to show addons that are doing more than a certain KB. What about a option to show the 10, 20, 40 highest memory using addons. I think this would be easier to see a ever changing list but that is just my personal preference.

Also I've always wondered why anything over 40mb for total addons red? Whats so special about 40? If it relies on the computer than what about adding a option of changing that based upon the users PC? Just an idea.

Keep up the excellent work!
thefrogi is offline Report comment to moderator  
Reply With Quote
Old 03-06-10, 03:25 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Originally posted by Skylinee
I noticed that it does an automatic garbagecollect after you've closed the tooltip. Any way to disable this behaviour? I don't want it to collect garbage if i'm hovering over the display during combat for example, as it can cause a slight stutter.
Yes I'll include that in next update as well. I added that line for testing purposes and forgot to take it out lol.

FIXED as of v4.2, enjoy! Keep the suggestions/requests coming in.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Last edited by shUI : 03-06-10 at 06:56 PM.
shUI is offline Report comment to moderator  
Reply With Quote
Old 03-06-10, 03:11 PM  
Skylinee
A Murloc Raider

Forum posts: 5
File comments: 390
Uploads: 0
I noticed that it does an automatic garbagecollect after you've closed the tooltip. Any way to disable this behaviour? I don't want it to collect garbage if i'm hovering over the display during combat for example, as it can cause a slight stutter.
Skylinee is offline Report comment to moderator  
Reply With Quote
Old 03-06-10, 02:27 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Originally posted by Jexx
I like to have the option in Lua to either display the total UI memory usage or just the addon memory usage. I wouldn't need to display both but there might be people that would like that as well.

I don't think we need percentages next to each specific addon personally. I'd like it if this addon stayed as simple and lightweight/efficient as possible.
I was debating that as well. If I add percentages, it wouldn't increase memory usage but maybe 1 to 1.5 kb. But I was thinking about adding the option to display total memory used or just addon memory used. Look for that option to be available in next update.
__________________
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
Old 03-06-10, 02:17 PM  
Jexx
A Deviate Faerie Dragon

Forum posts: 10
File comments: 114
Uploads: 0
Originally posted by shUI

Maybe have an option in the Lua file to display either the TOTAL UI memory usage or just the ADDON memory usage...or maybe both? I like the idea of displaying both, any suggestions/comments?

Also, I was thinking about adding a percentage usage next to each specific addon usage in the tooltip, would anyone be interested in that?
I like to have the option in Lua to either display the total UI memory usage or just the addon memory usage. I wouldn't need to display both but there might be people that would like that as well.

I don't think we need percentages next to each specific addon personally. I'd like it if this addon stayed as simple and lightweight/efficient as possible.
Jexx is offline Report comment to moderator  
Reply With Quote
Old 03-06-10, 12:04 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Originally posted by Shadowcall
seems it happens all the time
i modified wantAlphaSort to false and MEMTHRESH to 75
also stuttering is again present
running latest version

LE. changed wantOnClick to true and the stuttering is gone
Exactly, that is why I provided two versions of the updating. One feature that is continuous (wantOnClickUpdating = false) and one that only updates when you click the data broker (but always updates when you mouse over - wantOnClickUpdating = true) : This is recommend for users that have tons of addons.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Last edited by shUI : 03-06-10 at 12:24 PM.
shUI is offline Report comment to moderator  
Reply With Quote
Old 03-06-10, 11:35 AM  
Shadowcall
A Cyclonian
 
Shadowcall's Avatar
AddOn Author - Click to view AddOns

Forum posts: 44
File comments: 57
Uploads: 1
seems it happens all the time
i modified wantAlphaSort to false and MEMTHRESH to 75
also stuttering is again present
running latest version

LE. changed wantOnClick to true and the stuttering is gone
Last edited by Shadowcall : 03-06-10 at 11:43 AM.
Shadowcall is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: