Download
(16 Kb)
Download
Updated: 11-27-12 06:01 PM
Pictures
File Info
Compatibility:
Landfall (5.1)
Mists of Pandaria (5.0.4)
Updated:11-27-12 06:01 PM
Created:03-01-10 09:14 PM
Downloads:33,206
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 11: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
Unread 03-03-10, 03:18 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Look for the next version in the next day or two.
__________________
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 03-03-10, 03:13 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
@Shadowcall: thank you for all your updates.

This is what I have figured out. I failed to realize that most of the wow community use more than 20mb worth of their custom addons. When this happens, my function call updates the tooltip call the for loop on every update.

On my system and the other computers I tested it on, there aren't that many 'heavy' addons.

So this is what I am going to do. I'm going to rewrite the code to ONLY update the tool tip (the numbers that always show in the display will be updated via the Blizzard made function calls in real time) onclick. So if you want to update it you are going to have to click it.

OR if you like the real time updates, then you will have to set the MEMTHRESH to 300+ and the update to 5 seconds. I want to keep the overall memory usage low, that is why I don't want to do what the other authors did and just overload the tooltip.

Hope this makes sense. Feedback?
__________________
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 03-03-10, 02:55 PM  
Shadowcall
A Cyclonian
 
Shadowcall's Avatar
AddOn Author - Click to view AddOns

Forum posts: 44
File comments: 57
Uploads: 1
The stuttering srtas right after i enter the game, i have 4gb of ram on windws 7 64 biti, i'm using around 120 addons, and my total memory usage is around 33mb (without blizz)
Last edited by Shadowcall : 03-03-10 at 02:58 PM.
Shadowcall is offline Report comment to moderator  
Reply With Quote
Unread 03-03-10, 02:43 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
This is very interesting to me b/c I have tested on 4 different computers (1 being a Mac) and have no problem whatsoever with stuttering. What I would like to know from the people that are having some stuttering give me more details:

1) When does the stuttering happen?
2) How many addons do you use and what is your total memory usage?
3) How much RAM do you have?

Any other pertaining information will help me evaluate the problem to see if it is isolated.

@Sammael: give me some more input as I above stated if you can. I'd like to nail it as well.

@Gregory: you can limit the number of addons displayed INDIRECTLY via changing the MEMTHRESH number at the top of the LUA file. This setting states that the tooltip will only show addons that exceed whatever number you put in there. I currently have it to show all addons over 20kb.

@Shadowcall: thanks for the input, I will look into this and maybe optimize my sorting methods, etc.

@Aexo: that is really odd. That happens to me sometime, but it helped after I reloaded my ui in game: type - "/console reloadui" right after you check the box.

Keep the feedback coming.
__________________
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 03-03-10, 01:46 PM  
x
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 9
File comments: 73
Uploads: 1
I can't get it to work with ChocolateBar: whenever I click the Enabled checkbox, it does not tick nor does it appear in the bar. I haven't such issue with any other LDB, and I much more astonished given the last commenter uses ChocolateBar. Any clue?
x is offline Report comment to moderator  
Reply With Quote
Unread 03-03-10, 01:12 PM  
Shadowcall
A Cyclonian
 
Shadowcall's Avatar
AddOn Author - Click to view AddOns

Forum posts: 44
File comments: 57
Uploads: 1
Just did some testing with the new version and it was better, but stil ther was some stuttering. After i modified MEMTHRESH to 300 and collect garbage to 5 had the best performance with your addon enabled
Last edited by Shadowcall : 03-03-10 at 01:12 PM.
Shadowcall is offline Report comment to moderator  
Reply With Quote
Unread 03-03-10, 12:43 PM  
Gregory
A Kobold Labourer

Forum posts: 0
File comments: 67
Uploads: 0
can you limit number of addons shown in memory usage tooltip and sort it by memory used ?

p.s. also got some lags, reverted back to broker_cpu
Last edited by Gregory : 03-03-10 at 01:23 PM.
Gregory is offline Report comment to moderator  
Reply With Quote
Unread 03-03-10, 12:08 PM  
sammael
A Defias Bandit

Forum posts: 2
File comments: 66
Uploads: 0
im experiencing graphic stuttering about every second or two with last update, with first versions it was much worse but this is still unacceptable for me. Nearly every ldb addon concerning mem/fps/latency does this to me, only exception is Broker_SysMon which shows relatively all the info your addon shows but causes no stuttering at all

hope you nail the issue down as i kinda like look of your addon more than of Broker_SysMon

my ldb display is ChocolateBar
sammael is offline Report comment to moderator  
Reply With Quote
Unread 03-03-10, 10:25 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Just updated v1.2 with the new new UPDATEPERIOD. This should improve performance on some machines. I'm going to dig a bit deeper to make sure that we have no performance issues on any machines.
__________________
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 03-03-10, 10:17 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Originally posted by Shadowcall
I also had the same issues with your addon. I don't have CPU profiling enabled and i'm using Docking Station for ldb display.
It might be the update period.
That is so odd. I will update with a new version with a higher update period and see if that fixes any problems. You can also do it manually by going into the LUA file and changing the variable from 0.5 -> 1 or 2 seconds.

Keep the feedback coming and let me know if anyone else is having an issue.
__________________
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 03-03-10, 05:48 AM  
Shadowcall
A Cyclonian
 
Shadowcall's Avatar
AddOn Author - Click to view AddOns

Forum posts: 44
File comments: 57
Uploads: 1
I also had the same issues with your addon. I don't have CPU profiling enabled and i'm using Docking Station for ldb display.
It might be the update period.
Shadowcall is offline Report comment to moderator  
Reply With Quote
Unread 03-02-10, 09:35 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
Originally posted by lwoodya
I loaded Docking station and disabled Titan Panel for a toon. I added your mod and got the same result even before it was on the back...graphic stuttering and half normal fps.
Can you give me a list of your addons?
__________________
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 03-02-10, 08:35 PM  
lwoodya
A Kobold Labourer

Forum posts: 0
File comments: 21
Uploads: 0
I loaded Docking station and disabled Titan Panel for a toon. I added your mod and got the same result even before it was on the back...graphic stuttering and half normal fps.

Originally posted by shUI
@Iwoodya:

I definitely think Titan panel is the culprit here. Titan panel is a form of a data broker display, but it doesn't mesh well with the new LDB libraries. Try it out. Let me know of any updates.
lwoodya is offline Report comment to moderator  
Reply With Quote
Unread 03-02-10, 05:04 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 329
Uploads: 5
@Iwoodya:

I definitely think Titan panel is the culprit here. Titan panel is a form of a data broker display, but it doesn't mesh well with the new LDB libraries. Try it out. Let me know of any updates.
__________________
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 03-02-10, 04:31 PM  
lwoodya
A Kobold Labourer

Forum posts: 0
File comments: 21
Uploads: 0
I currently have about 90 addons installed (it varies as some are dropped and others are added) but no toon runs all of those...ever. Probably 50-70 depending on the toon. In any case I never use CPU profiling due to the outrageous toll it takes on performance. I don't think there is a memory leak or usage issue with your addon since it does not even show up on my titan panel built-in performance monitor radar for the top 10 or so addons used. It may be that is does not play nice with a specific addon, but honestly I don't have the time to figure out which. I was intrigued by the performance module but its not that big of a deal.

Thank you for responding.

Originally posted by shUI
@Skylinee: Thanks for the comments, I am actually a programmer and I was taught from the very beginning that efficiency is key hehe. As far as sorting the addon by addon usage (highest usage being on top e.g.) these are the problems we run into:
  1. Having it update dynamically and sorting consistently is a huge MEMhog (trust me, I know...I tried it and it was pushing 300kb of mem usage)
  2. I have it working in a beta program, but some feedback I got from friends included that it might be kind of hard to locate a specific addon and it's usage
  3. Writing an efficient sorting method that runs as smoothly as the string comparing method is difficult

However, I was trying to be a bit clever and publish the addon that does this, but only updates onclick the addon broker. So for example, if you hover over the data broker it will sort the list in the way you want, but in order to update you have to click it. Does that make sense? I will look into it though.

@Calest: the font can be changed however you want, but another addon must be present to do so. I use TipTac and it works like a charm.

@Ichik: There is an indirect way to limit the number of addons that appear on the screen, and that is via increasing the MEMTHRESH number at the top of the LUA file. Let's say you set the MEMTHRESH = 100, that means it will only display addons that use more than 100kb of memory usage.

@Iwoodya and willgk: I have no idea why it would slow down your system?? I have been testing this addon for awhile and it works absolutely fine on several of my machines and friend's machines. How many addons do you use, is CPU profiling enabled (b/c the addon doesn't do anything with CP profiling), and let me know how much mem usage shPerformance is using by viewing the tooltip.
lwoodya is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: