Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Is there a way I can simulate various connection speeds from within Firefox?

I need to be able to check http://localhost with varying speeds.

I know there are standalone applications that can do this, but I'd rather do this inside Firefox via a plugin or similar.

share|improve this question
4  
By slow do you mean low bandwidth or high latency? –  Chris Upchurch Feb 3 '09 at 0:21
    
See also stackoverflow.com/questions/1094760/… –  che Jan 17 at 9:46
add comment

migrated from stackoverflow.com Aug 31 '11 at 22:42

This question came from our site for professional and enthusiast programmers.

12 Answers

up vote 177 down vote accepted

Firefox Throttle worked for Firefox up to 3.6 alpha

"Firefox Throttle is a small plug-in for your favorite Web Browser, that allows you to cap download/upload rates and monitor current bandwidth utilization. "

Internet Explorer Throttle (As of 2010/02/23, still doesn't work for localhost)

"IE Throttle is a small plug-in for your Microsoft Internet Explorer, that allows you to cap download/upload rates."


Addendum: Throttle seems to have been abandoned in that the links above take you to versions which only work with older browsers which are no longer available, so I have uploaded some files for archival purposes.

You can get Firefox 3.6.25 here, which still works with Throttle – or the binary installation file which I archived.

I like to use the Firebug Addon when testing with old slow browsers (part of the simulation). You can download it from my archive.

I made up a version of Throttle which will install and run with any Firefox above 1.4 and below 4.0 (as far as I know). It is just a simple hack on the max version check as described on other threads, but if you want an off-the-shelf Addon, my archive is ffthrottle2.xpi.

This does make a pretty nice compatability test for those of us who want to verify function on dial up lines, but don't have any dial up lines (and the older browser is consistent with who would be using dial up these days).

share|improve this answer
2  
:( - Firefox Throttle doesn't work on Linux! –  a_m0d Jun 23 '09 at 8:02
2  
This solution is not quite accurate. It will simulate limited bandwidth, but it does not simulate latency. Very small requests will still be responded without delay. –  Adrian Grigore Oct 31 '09 at 15:08
    
Used @Zidad's link. Tricky to get localhost throttle working, but if I enabled/disabled localhost & localNetwork options from the status bar a few times, it eventually worked ok –  Brian Bishop Jan 13 '11 at 10:26
    
It is removed from Mozilla, but still available at the link in the answer. However, it isn't possible to deactivate it without errors. I'd recommend the answer below. –  Znarkus Apr 27 '11 at 11:36
8  
Your links are dead. Can they please be updated, otherwise this answer is pretty useless. –  DMA57361 Sep 1 '11 at 10:12
show 1 more comment

Linux

Traffic Control

On every modern Linux system you will find the tool "tc" (traffic control).

iprelay

For several *NIX distros there are packages called ip_relay.

ip_relay can shape the TCP traffic forwarded through it to a specified bandwidth and allow this specified bandwidth to be changed on-the-fly. Multiple data streams to different hosts/ports may be shaped to the same total bandwidth, much like a traffic shaping router would, however this application runs in user space, and works by acting as a TCP proxy.

Debian

For example, in Debian you could do the following:

$ iprelay -b2500 8000:localhost:80
# Point browser at http://localhost:8000

and you can see your website creations as a poor modem user would...

Ubuntu

or a link for an Ubuntu package: http://manpages.ubuntu.com/manpages/gutsy/en/man1/iprelay.1.html


OS X

The original iprelay Perl script found at Gavin Stewards website works on OS X out of the box.


Windows

Another tool which works on Windows: Internet Speed Simulator

Speed simulator is a simple throttling proxy which allows you to see how your site behaves under different connection speeds. It was written by me to test AJAX/Flash loaders and see how much my time took to load. You can simulate various speeds like that of a modem or a ADSL. A pre delay function is also there to help simulate delays due to DNS , connection establishment etc.

share|improve this answer
1  
The question stated, "I know there are standalone applications to do it, but I'd rather have a plugin."... –  Nik Reiman Jan 27 '09 at 11:15
37  
it might help someone else, stackoverflow is a wiki after all. –  markus Jan 27 '09 at 11:26
1  
iprelay works great. Thank you very much. –  pi Jan 30 '09 at 15:22
    
Website for ip_replay: stewart.com.au/ip_relay. –  MitMaro Dec 27 '09 at 10:59
1  
tc - traffic control is also a handy and powerful alternative. In kdedevelopers.org/node/1878 you can see how to put latency on a loopback device. –  Mark Raddatz Feb 6 '10 at 7:17
show 1 more comment

Fiddler can similulate slow modem connections:

Here's how to modify the delays in the request and response.

Here's how to use Fiddler with Localhost.

share|improve this answer
add comment

The "Charles Web Debugging Proxy" has no problem throttling localhost. It works on windows, mac and linux. The trial version is fully functional and a licence costs only $50. I highly recommend it.

http://www.charlesproxy.com/download.php

share|improve this answer
add comment

The solution I use is a combination of Firefox throttle and Sloppy

  1. Install FirefoxThrottle. This will display the speed in the Firefox status bar.

  2. Now in Firefox go to the address you want to throttle and get the EXACT URL.

    • A lot of websites have redirects which can throw sloppy off.
    • Go to the start page for the site you want to throttle.
    • Copy the exact URL into the windows clipboard. The exact URL will include the http:// and the www parts if they are part of the URL,

Example: I'm in Canada so if I type "google.com" in the FireFox URL it actually takes me to http://www.google.ca/

  1. Start Sloppy (it is a Java webstart) so just double click the sloppy.jnlp file

  2. Now paste the URL into sloppy (i.e. Paste the entire "http://www.google.ca/" string).

  3. Firefox will take you to http://127.0.0.1:7569/ which is a throttled version of the site.

  4. Firefox Throttle will display in the Firefox status bar the speeds you are getting.

share|improve this answer
add comment

I think you would be better off by using a purpose built proxy as it would work in all browsers and/or any other applications. So I think you should have a look at Sloppy.

Basically, all you need to do is launch Sloppy, enter the address of your site and then it will open it in your default browser and simulate a dial-up speed. As a plus side, it's written in Java so it would work on Mac or Linux as well.

share|improve this answer
    
Adding to this answer, set up Sloppy (or a similar proxy) then use the FoxyProxy plugin for firefox, which supports sending particular addresses through particular proxies, as well as easy toggling if you don't want to use them at all. –  phloopy Jan 27 '09 at 15:27
add comment

Use NetLimiter to limit your internet bandwidth upload/download per program.

Simply checkmark the Incoming/Outgoing limit checkbox next to Firefox, type in a speed limit in the current units (Kbits/KB per sec/kbits per sec).

Firefox's connection speed is limited to your setting so you can simulate slow download speeds, etc!

share|improve this answer
add comment

Here's an easy and configurable non-proxy solution for Mac users that works across browsers. It installs as a preference pane.

speedlimit home page

share|improve this answer
add comment

For OS X, check this:

speedlimit

enter image description here

speedlimit is a Leopard preference pane for limiting your network bandwidth to one of a couple different speeds—768k DSL, Edge, 3G, and Dialup. This is really handy for testing your iPhone app under normal Edge network conditions in the iPhone Simulator. The new version allows you to restrict the slowdown to only a specific set of hosts.

share|improve this answer
add comment

You might be able to use the DelayPools feature from Squid proxy.

Another possibility is the bandwidth throttle feature from Charles Proxy. Charles Proxy includes an Add-On for Firefox which will automatically configure the proxy settings.

share|improve this answer
add comment

There could be a way to trick the plugins mentioned in @Jonathan Sampson's answer to do throttling also for your local server.

If you have a high-speed connection and you're behind a modem/router that you are willing to configure (one time set up):

  1. Add an entry in your hosts file to point localhost to your external IP (that hopefully doesn't change much). You mentioned that you're using virtual hosts. You should add them as well.
  2. In your router, map external accesses to port 80 (or whatever) to port 80 of your local machine.
  3. Hopefully, the plugin won't think that the server you're trying to access is on a local IP and therefore won't throttle the connection.

Assuming your external IP doesn't chance all the time (especially if you're in an office with a dedicated line), this solution will help you to use those plugins, with a one-time or one-in-a-while setup in your modem/router.

share|improve this answer
add comment

For OS X, Apple offers a System Preference preference pane for download in their Developer Center called Network Link Conditioner, which is able to simulate low bandwidth, high delay, and packet loss.

Screenshot

How to download (from here):

First, you’ll want to get the Hardware IO Tools for Xcode. To do this, go into the Xcode menu, then choose “Open Developer Tool” and finally “More Developer Tools…”. You’ll be taken to Apple’s developer downloads site; you should download the “Hardware IO Tools for Xcode”.

Or (as of Jan 2014) go to http://developer.apple.com, Resources, OS X, Additional Downloads, then filter for Developer Tools.

This should be available for all registered developers and not need one of the memberships.

share|improve this answer
add comment

protected by studiohack Dec 3 '11 at 3:01

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.