Download
(16Kb)
Download
Updated: 08-16-18 01:52 PM
Pictures
File Info
Compatibility:
Battle for Azeroth (8.0.1)
Updated:08-16-18 01:52 PM
Created:03-01-10 09:14 PM
Downloads:42,953
Favorites:427
MD5:
Categories:Data Broker, Other, ToolTip, Plug-Ins & Patches

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

Version: 8.0
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!

8.0
-Updated TOC file for BFA
-----------------------
6.2
-Updated TOC file and cleaned up some code
-----------------------
6.1
- Fixed latency to show WORLD latency
- Code clean up for deprecated items
-----------------------
6.0
- Code clean up of deprecated items and some basic spring cleaning
- Updated toc for legion
- Updated some global calls to Blizzard API regarding addons
- Fixed up tooltip to clean up colors and information
- Added config option to show both FPS and Latency in broker text as well as in tooltip
-----------------------
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


Post A Reply Comment Options
Unread 06-24-10, 07:30 AM  
elals29
A Wyrmkin Dreamwalker
 
elals29's Avatar

Forum posts: 57
File comments: 97
Uploads: 0
I have a question. The color coding... Does it mean when the mod's name is in red is using alot memory to run? What does the yellow, orange, and green mean? I assume the green means it's not using much memory to run. And how do i pull up the config menu?
Report comment to moderator  
Reply With Quote
Unread 06-24-10, 05:53 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by Shadowcall
You can use the latest version. To have memory sorting you need to open shPerformance.lua with any text editor, like notepad, and modifiy line 8 from
local wantAlphaSorting = true to local wantAlphaSorting = false



The addon about I was talking was called Zoom!!! and his feature was to prevent garbage collection during the UI load cycle. By doing this he was interfering with shPerformance garbage collection. If you use that addon, just disable it and see what happens
@Kxuhx: exactly what Shadow said. You can use the newer version (recommended), but just change that one line in the LUA file.

@Shadowcall: You da man!
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 06-24-10, 12:58 AM  
Shadowcall
A Cyclonian
 
Shadowcall's Avatar
AddOn Author - Click to view AddOns

Forum posts: 44
File comments: 58
Uploads: 1
Originally posted by kxuhx
ok so the popular was sorting by name vs sorting by memory. If i want the sorting by memory, do i just back track a version? Id much rather see the top draws on memory instead of ABC order.
You can use the latest version. To have memory sorting you need to open shPerformance.lua with any text editor, like notepad, and modifiy line 8 from
local wantAlphaSorting = true to local wantAlphaSorting = false

Originally posted by Fiercy
Sry never checked back because it wasn't that much of a problem. Yes i do use zoom shadow, and no the tweak didn't help. Either way it's a great addon.
The addon about I was talking was called Zoom!!! and his feature was to prevent garbage collection during the UI load cycle. By doing this he was interfering with shPerformance garbage collection. If you use that addon, just disable it and see what happens
Last edited by Shadowcall : 06-24-10 at 01:09 AM.
Report comment to moderator  
Reply With Quote
Unread 06-23-10, 09:44 PM  
kxuhx
A Kobold Labourer

Forum posts: 0
File comments: 83
Uploads: 0
ok so the popular was sorting by name vs sorting by memory. If i want the sorting by memory, do i just back track a version? Id much rather see the top draws on memory instead of ABC order.
Report comment to moderator  
Reply With Quote
Unread 04-28-10, 01:35 PM  
Fiercy
A Cyclonian
 
Fiercy's Avatar
AddOn Author - Click to view AddOns

Forum posts: 40
File comments: 142
Uploads: 7
Originally posted by shUI
Fiercy I just uploaded the newest version with some minor tweaks and changes. Let me know if it is still doing that and make sure you aren't using the addon mentioned above by Shadow. Let me know of any updates!

@Shadow, thanks again bud.
Sry never checked back because it wasn't that much of a problem. Yes i do use zoom shadow, and no the tweak didn't help. Either way it's a great addon.
__________________
There are countless ingredients that make up the human body and mind, like all the components that make up me as an individual with my own personality. Sure, I have a face and voice to distinguish myself from others, but my thoughts and memories are unique only to me, and I carry a sense of my own destiny. Each of those things are just a small part of it. I collect information to use in my own way. All of that blends to create a mixture that forms me and gives rise to my conscience.
Report comment to moderator  
Reply With Quote
Unread 04-18-10, 09:08 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by sykopat
I have already set max displayed addons to 25, they are sorted by memory usage as that was the default and I have also set the tooltip to only update when it's actually shown. The amount of stuttering varies, but it only happens if the memory display change value, and every time it does. It's kinda strange as the broker updates in real time with even intervals regardless, but if memory consumption haven changed since last "tick" it doesn't stutter. May be a weakness in the game code, not yours. That's what I meant in the last post too.
Fair enough hehe, well I hope you are enjoying the addon and if you have any other questions please let me know!
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 04-18-10, 09:00 AM  
sykopat
A Kobold Labourer

Forum posts: 1
File comments: 28
Uploads: 0
I have already set max displayed addons to 25, they are sorted by memory usage as that was the default and I have also set the tooltip to only update when it's actually shown. The amount of stuttering varies, but it only happens if the memory display change value, and every time it does. It's kinda strange as the broker updates in real time with even intervals regardless, but if memory consumption haven changed since last "tick" it doesn't stutter. May be a weakness in the game code, not yours. That's what I meant in the last post too.
Report comment to moderator  
Reply With Quote
Unread 04-17-10, 10:42 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by sykopat
Thank you for your fast reply.

I have been fiddling a bit with the settings and it has helped, but as far as I can see the addon still updates in real time just not the tooltip? I suspect it has something to do with the fact that I'm running way to many addons.

..\Interface\Addons contains:

256 Addon folders
_24 Blizzard folders
280 Total folders

Many of these contains minuscule addons and some addons have several folders. Initial memory use when I logged in just now was 133.19MB (total including Blizz) this will increase and decrease as a lot of addons load on demand. I'm not sure where it peaks, as this also depends on addons that gather data that can be purged once you have submitted it. I do suspect that it either has to do with the fact that I run a lot of addons or perhaps with the part of Blizzards code that allows your addon to pull this info from the engine. I have noticed that the tiny built in implementation, when you mouse over that small computer screen at the bottom, also causes a small delay. Even though this is so minor it's almost not noticeable it's still there.

8GB RAM (Most of it of no use too WoW though. )
Core 2 Duo 2.40GHz

I do no use any CPU profiling.

I hope this info is of use to you, but I fear there is nothing you can do.
Oh wow, that's a lot of add ons. Just to give you some insight, the list of addons are created as soon as you log into the game via a table. Depending on the setting you choose, they are sorted either in real time or when you hover/click on the databroker. What happens is in that second that the OnClick() function is called...it resorts/reorders the addons. Unfortunately, you are right...I wrote very efficient code, but there is always a limit. Now what you can do is this:
  • Change the max displayed addons to 60
  • Change the sorting method to sort by memorry usage
  • Test to see if it is still stuttering if you have it updating in real time or just by clicking

Hope this helps and I'm really sorry.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 04-16-10, 04:08 AM  
sykopat
A Kobold Labourer

Forum posts: 1
File comments: 28
Uploads: 0
Thank you for your fast reply.

I have been fiddling a bit with the settings and it has helped, but as far as I can see the addon still updates in real time just not the tooltip? I suspect it has something to do with the fact that I'm running way to many addons.

..\Interface\Addons contains:

256 Addon folders
_24 Blizzard folders
280 Total folders

Many of these contains minuscule addons and some addons have several folders. Initial memory use when I logged in just now was 133.19MB (total including Blizz) this will increase and decrease as a lot of addons load on demand. I'm not sure where it peaks, as this also depends on addons that gather data that can be purged once you have submitted it. I do suspect that it either has to do with the fact that I run a lot of addons or perhaps with the part of Blizzards code that allows your addon to pull this info from the engine. I have noticed that the tiny built in implementation, when you mouse over that small computer screen at the bottom, also causes a small delay. Even though this is so minor it's almost not noticeable it's still there.

8GB RAM (Most of it of no use too WoW though. )
Core 2 Duo 2.40GHz

I do no use any CPU profiling.

I hope this info is of use to you, but I fear there is nothing you can do.
Last edited by sykopat : 04-16-10 at 04:15 AM.
Report comment to moderator  
Reply With Quote
Unread 04-12-10, 06:11 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by sykopat
Hi, while having this addon enabled the game freezes for a tiny fraction of a second every few seconds. Any suggestions?

Edit: Seems it happens every time used memory changes value, not when fps or ms changes.
I have had similar problems on some of my machines, however after fixing the thresholds and limiting the list of addons it seemed to fix it. This might sound like overkill, but could you post the following:
  • # of addons
  • Computer RAM?
  • Total addon memory
  • CPU info (type and speed)

Please let me know about anything else that might help me analyze this. I have a feeling that another addon could be the culprit. Do you have CPU profiling on as well?
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 04-12-10, 03:44 PM  
sykopat
A Kobold Labourer

Forum posts: 1
File comments: 28
Uploads: 0
Hi, while having this addon enabled the game freezes for a tiny fraction of a second every few seconds. Any suggestions?

Edit: Seems it happens every time used memory changes value, not when fps or ms changes.
Last edited by sykopat : 04-12-10 at 04:28 PM.
Report comment to moderator  
Reply With Quote
Unread 03-29-10, 10:29 AM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
There are fair arguments on both sides to this matter - and I will have to do some research and test out code to see how well it performs and see if it is even viable, but it will be an interesting and fun little project nonetheless.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 03-29-10, 07:41 AM  
Skylinee
A Murloc Raider

Forum posts: 5
File comments: 371
Uploads: 0
Originally posted by blizzart
Is there a chance to get cpu usage in the future ?
If you can do it, this addon would be perfect
CPU usage isn't something you need to track often, usually you only need it once a month to test out how new addons perform in a raid. There's no need to add extra code just to have this function when there are several addons available allready that you can just enable whenever you want to profile CPU usage.
Report comment to moderator  
Reply With Quote
Unread 03-29-10, 04:46 AM  
Shadowcall
A Cyclonian
 
Shadowcall's Avatar
AddOn Author - Click to view AddOns

Forum posts: 44
File comments: 58
Uploads: 1
if you want to add cpu profiling you might need to add a script to enable and disable the cpu profiling and reload the ui
Report comment to moderator  
Reply With Quote
Unread 03-28-10, 10:41 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by blizzart
Is there a chance to get cpu usage in the future ?
If you can do it, this addon would be perfect
It's been something I have been contemplating for awhile now, keep checking back and I might just add it Thanks for the compliment!
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: