This thread has been helpful to me. This slight detour about Opera and Java has caused me to dig into enough articles and do some experiments to remove Java
from the list of candidates of culprits behind the freezes every six minutes. First let me clarify any misconceptions I posted previously:
Opera currently (January 2010, version 10.10 for Windows) requires no
3rd party Java runtimes or virtual machines to run itself because its compiled binaries have no dependencies to such files for normal operation. Opera official statement here
, but as is often the case for me lately, clear and concise explanations are found offsite from Opera. Since around v5.12 Opera has shipped with its own distribution: classes in a JAR archive (easy enough to find) and a mysterious embedded runtime that both Sun
are aware of but Opera itself does not describe.
So, will Opera operate without any trace of Java existing on the computer? Yes
. I tested this by purging all remnants of Sun JRE/SDK and MS JVM physically on a Win98se test computer (zipped up all the files and deleted the directories, and close/restart Opera). In this configuration, the only Java that Opera has access to is its own distribution. Note that the physical presence of JRE files on the HDD is signaled to Opera either from the system registry or its local INI files or both.
Opera works as usual, (NB: the pause/freeze still occurs at regular intervals, more on this later). Now, if you try to do what I described in my previous post above: Tools > Advanced > Java Console
nothing will happen, which indicates the Java Console is completely dependent on 3rd party JRE components. Interestingly, the presumingly buggy Opera ABOUT page still lists the Sun Java Runtime so it must be reading a string tucked away in some INI file or the system registry. If you try to check Tools > Preferences > Advanced > Enable Java
, a dialog pops up to download the Sun JRE (this only occured on the first attempt, subsequent attempts to Enable Java
silently disappeared from the screen.
However it seems that its native components (at this point in the experiment: the Opera JAR classes and the mysterious embedded runtime) fail to handle Java content, and proof can be seen on this Java Test Page
, which results in a Java error notification from that website. I am left wondering just what this embedded runtime is and just what it is supposed to do. I am beginning to think that zipped classes in a JAR constitute a runtime in Javaland (but there's my lack of knowledge showing again).
So let's also get rid of the native Opera Java components: I zipped up the Java subfolder with its JAR and policy, deleted the original files, rinse and repeat. In this experiment there is not a single trace of Java physically existing on any HDD. Result: Opera works exactly as described above (pause/freezes still exist as well). I conclude that the supplied Java classes and so-called embedded runtime (if it really exists) is only used when a 3rd party Java runtime (Sun JRE) is being utilized by Opera. It's worth noting here that the Sun JRE plugin
has absolutely no purpose with regards to Opera, it is meant for other browsers. Opera loads files from the JRE installation directory it does not use any npj*.dll plugin.
As far as I am concerned Java
in all its flavors and implementations is now off the hook with regards to the Opera freeze. Stick a fork in it, it's done. Personally I feel that this is way too much research to do in order to exhaust a single ingredient as the problem in this Opera stew (thanks really to all the misguided information all over the net about Opera and Java). Its tantamount to studying ActiveX to debug MSIE problems, which is one main reason I avoid that browser except when absolutely necessary. Whatever. Nothing is easy these days.
Let me also point out that I have done the same exact experiment regarding all of the other plugins (deleting every trace, etc). I really hoped to find Adobe and its Flash disasters to be underneath this problem. Sorry to say, they are not. They may have security problems and memory leaks but Opera continues to operate exactly the same whether or not any plugins even exist on any HDD.
, see wiki
for basics, including this statement: Simple stop-the-world garbage collectors completely halt execution of the program to run a collection cycle
. Hmmm, methinks we're onto something. Once this is solved it will be very interesting to find out why some machines have this while others do not.
Those of you that do not see this problem may not appreciate its significance. Honestly, I do not remember anything this spectacularly painful since Windows 3.1. While typing this long post it has occurred almost a dozen times. Entire sentences are cached and then appear when the freeze thaws. Fortunately the freeze is confined to the Opera instances (though one Win9x hard lockup occurred complete with bluescreen scandisk). For me, there are not words enough to describe the anger and rage that I feel during some of these freezes, it all depends on what you were just doing really. If I have a bunch of downloads in progress, some (both http and ftp) do not recover and become ERROR in the status field. My rough look at this indicates that files originating from slow or non-resumable servers are most likely to die. Regardless, while Opera is suspended, packets are bouncing and this adds great pain to the disaster. Couple these facts with yet another: Opera freezes even if you are completely offline - no modem or ethernet or network at all. This wonderful feature makes any offline web development or browsing of saved webpages equally frustrating.
I am also going to bail from this particular thread since I have personally seen enough evidence to know that Opera 10.xx is not to blame at all. Can someone suggest a better home for a new thread about this generic Opera problem? Would Software Hangout
Finally, I am desperately looking for one utility: a Realtime Process Monitor for Win9x
, which can perform a specific function: log to a file when a condition is met. Specifically it must write a log entry whenever Opera.exe freezes, which is notable because its CPU utilization goes to 0%. Please
let me know! Thanks!