Dream Runtime Analyzer
Overview
This tool (or rather, toolset) was made to help Furcadia DreamWeavers to test their dreams for bandwidth usage and optimize their DragonSpeak. It records various performance information on the dream using a Furcadia character and helps the dream owner find out which lines were executed the most, as well as their location within the DragonSpeak file.
Analyzer was based off of tools that were used to analyze the Lake Resort dream of Dragon's Eye Productions, and help them vastly improve its performance through this information.
Dream Runtime Analyzer provides the following features:
- Allows to open raw existing data files collected by 3rd party means, as long as the contents are that of the Furcadia server.
- Allows to capture raw data from the Furcadia server through a player character and save it to disk in a timestamped or raw form for later reference or distribution.
- Allows timed captures that will last for as long as you set them to. The capture will stop by itself once the time runs out so you don't have to supervise it with a stopwatch.
- Displays a list of DragonSpeak Binary lines as well as server instructions from the most frequent to the least frequent in a table.
- Provides a means to load the DragonSpeak file of the analyzed dream and locate specific DSB lines within the actual DragonSpeak file for you.
- Standalone .NET executable file that does not need to be installed or clutter your disk/registry with configuration files. It runs by itself and writes data to disk only if you ask it to.
Requirements
.NET Framework: | 2.0 or later |
---|---|
Detected: | None |
This project utilizes the .NET Framework and thus, that's what you need to run the program.
If an up-to-date version of the framework was detected above (displayed in green), you don't really need anything else and can simply run the program to use it.
If the version is no up to date and is marked in red (or several were detected, but none of them is suitable - green), you might have to update it before you can run the program. Same if no versions were detected (although it isn't always true).
If you are using Windows XP with Service Pack 3, or Windows Vista or later, you might already have the framework installed! If you aren't sure, you can always run the program and see if it successfully runs or gives you an error.
Please note that .NET Framework is huge! Downloading it for the sole purpose of running this application might not be the best idea, so if you really don't have it yet, but know someone who most likely does, you could try asking the person to run it isntead.
You can download the Redistributable packages from the following links at Microsoft:
Download
Latest version: | 1.0.2 Download (83KB) (MD5: e959581a07f4ba35db910ed987d0ebdc) |
---|---|
Source code: | analyzer-1.0.2.zip Download (63KB) |
Older versions: |
1.0.1 (09-Sep-2009) 1.0.0 (08-Sep-2009) |
The source code was created with Microsoft Visual C# 2008 (Express Edition).
How to use
1. Click the Capture button to start capturing data
2. Prepare your capture session
In order to begin capturing data, you need to set up a few things. Start with the name and the password of a Furcadia character you want to use for this purpose. You can either type the name and password in the text boxes or click Load... and load this information from one of the INI files.
Once your character information is entered, you may want to adjust some of the settings in step 2. Here is a short overview of each of them:
- Start capturing data when connected - this will make the tool start capturing information as soon as it successfully logs into Furcadia. This helps if you want to capture the very beginning of your character's connection phase.
- Stop capturing data after: - this will set a timer after which, the data capture will automatically stop. This can help in collecting more precisely timed data samples without having to overlook the program to make sure you stop it in time. By default, the capture will stop a minute after it was started.
- Save capture data to disk: - this allows you to save the data you capture to a file of your choice so you can share it with others or reload it later. The format it saves the data in is not raw, but a little different. This allows the reception timestamps to be saved along with the data. You can export the raw data from this file with the Export Raw button in the main window.
Finally, to connect to Furcadia, click the Connect button and observe the status in the status window to the right. After a successful connection, the Start Capture button will be available to you with which you can start and stop your data capture.
In order to get some sort of control over the character, use the Command textbox to type commands such as join Artex or fdl furc://vinca (without the traditional ` prefix).
When you are done capturing data samples, click the OK button in order to return to the main window, which will now contain information about the recently captured data sample.
3. Examine the results
After loading (or capturing) data, your Analyzer window will display certain performance information that it gathered as well as two tables: the "DS Frequency" table and the "Instruction Frequency" table. Each shows how often did it encounter either certain DragonSpeak lines or Furcadia server instructions. DragonSpeak lines you will deal with a little later.
The information displayed in the "Bandwidth" tab is:
- Capture Title - either a filename or a simple title for the capture data loaded. It holds little significance unless you load a data file with a meaningful name. You can run several instances of the program, afterall!
- Total Bandwidth - this category and the two below it represent how many bytes were received in total from Furcadia while capturing the data sample, how many of those bytes are related to DragonSpeak and how many are related to the avatar movement. The percentage near the other two show what portion of the total amount of received data does that section represent (i.e. in the sample, DS-related data is almost 63% of total amount of data captured)
- Average Speed - provided that the program is aware of what time did the data come through (in other words: the data was captured by the program or loaded from a timestamped data format), it can show you the average speed that data came through during the capture period.
- Longest Instruction - not as useful, but there still: this shows you the length of the longest line we received from the Furcadia server.
- Capture Time - if the program is aware of the time the data came through, this will display how much time did this data capture session last.
- Instruction Count - this section counts how many server instructions (or "packets") of different kinds were received and at which rate (if the timing is known).
4. Locate problematic DragonSpeak and fix it
As a final stage, you would want to examine the DragonSpeak file of the dream and match the lines Analyzer received with the ones in the file. If there are DragonSpeak lines used too frequently, there might be a need to optimize them to improve the dream performance.
In order to do all this, click the Load DS button in the main window and load the DragonSpeak file that corresponds to the dream. This will open the DS Inspector where you should be able to locate the reported lines in your DS file:
The DragonSpeak Inspector window consists of two tables - the smaller one to the left, which displays the DSB line and its freqeuncy. To the right, you will see your DragonSpeak file loaded and divided into single lines. Below it, two numbers: the "Line" number (location within the file) and the "DSB Line" number (the line in the left table that the server gives us).
Clicking one of the lines in the leftmost table should focus on the corresponding line in the DragonSpeak file itself. If you click a line in the DragonSpeak file, you will notice that the program will update the two numbers, letting you know what does that line look like from the server's point of view, as well as what line number within the DragonSpeak file that row occupies.
Please note that the DS Inspector relies on a reasonable DragonSpeak syntax to match between DSB lines and regular ones. If your DS file contains lines with just numbers on them or lines that deviate from the usual syntax, they might cause the Inspector to display inaccurate information! Please take that into account if you do have such DS.
Finally, since DS Inspector does not allow you to actually change your DragonSpeak through it, you can still do it through the regular DragonSpeak editor associated with your DS files. To open that file in the DS editor, simply click on the button saying "Open DragonSpeak File".