Test Proctor Performance
March 13th, 2008We’ve made a few changes to the test proctor recently, so that it’s faster and smoother, especially on systems like limited bandwidth.
With a few schools we’ve worked with recently, this has become a major problem. Even though our demos run full-speed-ahead, the school has their network set up properly, and everyone can log into their PassMath accounts, when dozens of students start their tests in the computer lab at the exact same time, the Internet bandwidth requirements at that moment are enormous.
We’ve done several things to reduce that load, and to make the tests run smoother even in “difficult” network conditions:
- Fraction and Square Root image caching
Those little fractions and square root images (
and
) that appear all over the tests are dynamically generated. There is a program that asks, “Give me a number”. You say: 2.2. It responds by drawing a picture of that number:
.Well the image of 11/5 is going to look the exact same every single time right? Right, so now we tell the web browser to store that image once it’s been seen once, and from then on there is zero time needed to load the image again.The end result of this is that fraction and square root images don’t load one-at-a-time down the page as new test questions are displayed. They just appear instantly, with the question. From a network point of view, this cuts down drastically on the number of back-and-forth communications made to the PassMath servers, noticibly improving performance.
- Test Loading and Verification
Up until now, images, fractions, photos - basically anything other than plain text - weren’t loaded until they were needed on the tests.That meant that at the moment you clicked on question #5, your browser checks to see what images, fractions, etc. are needed for question #5, and starts trying to retrieve them. That process normally takes fractions of a second, but it’s still noticeable as a flickering when switching questions. Where this really becomes an issue is with a slower network, or a network that’s having some sort of temporary problem. Even though you’ve already started your test, the test proctor (the software that runs the test), may suddenly be unable to draw the next question, because it can’t communicate with our servers fast enough to get all of the resources it needs!We’re addressing this problem by introducing a slight delay at the beginning of the tests. As the test loads, it will now download everything it needs to get through the entire test. Before even showing the first question! This process isn’t even noticeable on a fast network. On a slow or congested network it adds between several seconds and a minute to the initial loading time. Once the initial load is done though, the test is guaranteed to run to completion without any glitches, since it’s all done obtaining information from our servers.
- Preloading This is an extension of the last point. When possible, we’ve taken this even further to load data ahead of time. For example, when a student has an assignment pending, we know right away that they are going to have to run that assignment, and they will need all of the images and resources associated with it.So why wait until the assignment starts, to start fetching all of that data? Now we fetch it whenever we can - while student is logged in, but before they actually start the assignment. Thoses menu screens may look like they’re just sitting there, but they’re actually working in the background, speeding up your tests!
