Posted by cowwoc
on January 17, 2008 at 5:28 PM PST
First of all I must say I am shocked with the performance of applets in 1.6.0_10-ea-b09.
Between upgrading my computer recently, to the performance boosts of Java6 and update N applets now load *very* fast.
I thought this had something to do with the new applet plugin, so I disabled it. I then disabled Java Quickstart. I then disabled Vista Superfetch. I then deleted both my FireFox cache and applet cache. Finally, I disabled the Quickstart plugin for FireFox.
To my surprise, applets only take 2 seconds on a cold start with all of the above disabled. That's only 1 second worse than Flash (!!) and quite acceptable in my view.
I did, however, run into the following problems:
1) Why is it that http://louisville.edu/~ahdeso01/applets/HowTo.html loads in 2 seconds while http://java.sun.com/applets/jdk/1.4/demo/applets/BarChart/example1.html loads in 4 seconds? I don't believe network latency is the culprit. The latter seems to load a lot more from the hard-drive than the former.
2) Under Vista, Java Quickstart is disabled in the Java Control Panel but not as a FireFox plugin. I am expecting the Windows service and FireFox Plugin to either both be enabled or disabled.
3) Java Kernel seems to install the Java Quickstart service before the full JRE finishes downloading. I suspect that if a user reboots before the download completes Windows will try running a nonexistent executable.
4) Starting an applet immediately after installing Java Kernel seemed to be much slower than starting an applet after installing the full JRE. Why would this be? One would expect the opposite to be true.
5) I didn't like the fact that Java Kernel kept on popping up "downloading components" dialog. I have nothing against the dialog, but it should pop up at most once per applet. The added problem with popping up the dialog multiple times is that its progress bar becomes meaningless (it doesn't reflect the real time I have to wait). Have you considered doing a static bytecode analysis to detect all the dependencies up-front and download them all at once?
6) Finally here is the biggest culprit I found :)
If I try hitting http://java.sun.com/applets/jdk/1.4/demo/applets/DitherTest/example1.html in FireFox without a JRE installed I get told I need to install a plugin. I click on the applet box to install the plugin. I get told "The following plugins are available: Java Runtime Environment". I click on Next. I get told "No plugins were installed. Java Runtime Environment - Not Available [Manual Install]". Clicking on manual install will direct me to http://java.com/en/download/windows_manual.jsp?locale=en&host=java.com&i... -- Now I am expected to download a binary and run it manually then go back to the website and reload the page. Needless to say no sane user will do this.
Contrast this with Flash. I visit a page without flash installed. I get told "The following plugins are available: Adobe Flash Player". I click Next. I get prompted to accept a license agreement directly inside FireFox's plugin installer. I click Agree. "Downloading Adobe Flash Player". A few seconds later "FireFox finished installing the missing plugins: Adobe Flash Player -- Installed". I clicked on Finished. The website reload automatically and the flash applet displays properly. The key point about Flash's installer is that it is integrated directly into FireFox's plugin installer. Why can't Sun do the same with the Java Kernel installer?
I would appreciate your feedback on as many of these as possible before I go ahead and file official bug reports.