06-27-2010 08:22 PM
While working on a little side project, I have created a few library functions that makes it easy to scour certain information from the forums. It could be my imagination, but since the forum upgrades, it has been more noticeable that long threads load more slowly/incrementally. One of my best guesses as to why things are running slow is User Avatars.... especially externally linked User Avatars.
Historically, it was necessary to externally host images (or do the little hack where you upload your image as an attachment, then come back and edit the post to include the hyperlink of your newly-uploaded image) in order to show images inline on threads. For the past two years or so, with the advent of the image gallery and the image insertion button on the post edit toolbar, the need to link externally is diminished (especially for avatars, a static image you upload once and forget about).
So, I made this assumption: the top 1000 Kudoed posters are probably some of the most chatty members on the forums, meaning their Avatar Icons will show up the most often. Here are the statistics on download performance for the top 1000 users' avatars. Each avatar was downloaded 7 times in random order (using AQ's recently released "Randomize 1D Array"), and the arithmetic mean of the five fastest times was used in all statistics:
Observations
Suggestions
06-27-2010 08:31 PM
Attached are 3 lists dealing with avatar performance. If you're interested, check if you are one who has a slow image, a large image, or an externally hosted image.
06-27-2010 10:51 PM - edited 06-27-2010 10:56 PM
Very interesting post.
I know those people with the broken links can definitely cause some slow page loadings. I hope your posts will cause some people to look at their icon file size and consider hosting it on the icons thread or their image library rather than a 3rd party server. I know I've redirected a handful of people of the the years to do that when they had broken links.
I decided to search your Top1000User VI to find my name. I started with searching for Ravens Fan and was surprised it didn't come up.
So I searched for my UserID and found it. That's when I noticed something very odd. In the cluster element for my username, the letters of the username were interspersed with null characters (00 hex), although they didn't appear that within the array of clusters. (See attached snippet). EDIT: I converted file from snippet to plain .png image since the data in the snippet made a huge .png file)
This expained why doing a string comparison didn't find it. But does anyone know why null characters would suddenly show up in the cluster element?
06-27-2010 11:00 PM
Ravens, I have used LabVIEW's Unicode encoding for usernames (UTF-16). This allows all usernames to show up properly, including the following:
Perhaps, one of these days, I should make an Idea for LabVIEW to adopt the more ubiquitous UTF-8 encoding! It's not a straightforward task juggling between ASCII, UTF-16, and UTF-8.
PS - Ravens, you're one of the few people who has uploaded a custom image SMALLER than 36x36px! I would encourage you (and only you!) to get a larger picture!
06-27-2010 11:02 PM
PPS - And your comment "it doesn't appear that way above..." ... yes it does, turn on "Hex" display on the indicator, and you'll see the padded bytes.
06-27-2010 11:44 PM
You're right. The string in the array of cluster does show the 00 when in hex mode. It didn't show up in normal mode or even /code mode.
The Unicode explanation makes sense.
I guess now my question is, how did you make the string element in the cluster array handle the Unicode as UTF 16, but when I index the array or unbundle that string element (and all indicators were created by Right click Create Indicator) it changes the way it handles that particular string element shows up and shows all the individual bytes.
It seems like you have a pretty good knowledge of how to do that juggling. And it is probably something I will never need to worry about since I am not ever going to deal with those foreign languages that need to have extended character sets. I'm just curious as to what the hidden secret is to how LabVIEW handled the Unicode to begin with, and am wondering if it is a bug that the index array essentially broke the way that unicode string was handled and displayed.
I'll work on upgrading that image. I think I made it 32 x 32 when I did it because I thought I had read about that size somewhere. But searching for it now, I might have confused that number with the LabVIEW icon size.
06-28-2010 04:21 PM
Wow Jack - this is great analysis!
One thing I can help with is contacting users that have avatars that take the longest to download. In fact, soon Lithium will be changing the way our images are hosted behind the scenes making the images hosted on the forums hopefully download even faster so the effect may be even more noticeable.
Can you send me a list of the IDs / aliases of users with the slower avatars?
Thanks,
Laura
06-28-2010 04:28 PM
@Laura F. wrote:
Wow Jack - this is great analysis!
One thing I can help with is contacting users that have avatars that take the longest to download. In fact, soon Lithium will be changing the way our images are hosted behind the scenes making the images hosted on the forums hopefully download even faster so the effect may be even more noticeable. Awesome!
Can you send me a list of the IDs / aliases of users with the slower avatars? Yes, I'll upload it later.
Thanks,
Laura
06-28-2010 05:07 PM
What do Avatars hosted on Pandora do to thread loading? 🙂
http://en.wikipedia.org/wiki/Avatar_(2009_film)
Interesting find Jack!
-AK2DM
06-28-2010 08:15 PM - edited 06-28-2010 08:16 PM
Attached is a plain text list of all users with avatar "issues" (I use this term very loosely...). Keep in mind, this is only the top 1000 Kudoed users, which represents only a fraction of one percent of all forum users.
Laura, you have better access to the data - could you query something like SELECT username WHERE avatar_url LIKE 'forums.ni.com'? Or better, does Lithium give front-end tools to generate reports on user data such as this? This would be a simpler way to figure out who uses externally hosted avatars.
(By the way, I know this whole thing is not tops on your priority list right now...)
Finally, as if I have not made enough emphasis, here's how freaking good and consistent forums.ni.com performs. The small box I have drawn encompasses 800 of the top 1000 users.