FireFox 3.1 Leaves IE in the Dust
Anonymous writes "Granted, FireFox 3.1 is just a beta and IE 8 is also in beta, but it looks like Microsoft has some ground to make up when it comes to browser performance. Given that Mozilla appears to be on a much faster cycle than Microsoft with this stuff, it's also possible that it could increase the gap even more before IE 8 is GA, no?"
both are slower than Opera.
This destroys Microsoft's claim that their intimate knowledge of the OS that runs IE will increase performance.
This proves that Microsoft's intimate knowledge of their OS actually inhibits performance of IE and therefore all other Microsoft products.
Microsoft is a victim of their own feature-rich corporate culture. They are a victim of their customers non-uniform demands.
The issue is similar to the ones that have always plagued Java; you have to load massive libraries to do miniscule tasks and that causes noticeable overhead, when they were sadly intended to save time! Firefox is simply more minimal, and it is through their actively sought after security footprint that they deliver better performance by default.
Firefox loads what you need to surf and also lets you modify the experience -- you are in control.
Add with that experience, superior plugins like NoScript, and you also save bandwidth because Flash files don't load by default and scripts don't tie up resources unless you approve them to do so. NoScript was designed for security, but with the added benefit that you get faster performance with it.
Even when you look at Google Chrome, which is also a valid attempt at increasing performance (they flaunt security as a pillar of their design, but their cheerleading is unwarranted), the fact that you can't control scripts that are allowed to run, limits the user and make the user bound to the control of the webmaster, who typically controlled by a business or corporation that is only in it for the money and will infringe on rights of users without any form of conscience or compassion.
The dangers of knowledge trigger emotional distress in human beings.
It's perhaps a bit confusing to mention IE8 in the subject as it was not compared to FF3.1 - IE7 was. I.e. a more apples-to-apples test might have been production FF3.0 versus IE7 or better yet, beta FF3.1 versus IE8.
Having said that, the speed improvements are very impressive, in what ChannelWeb says and other reports. And yea, FF3.1 is setting a darn high bar for IE8 - bring it on FF!
Hulk SMASH Celiac Disease
Given that Mozilla appears to be on a much faster cycle than Microsoft with this stuff, it's also possible that it could increase the gap even more before IE 8 is GA, no?
By "GA" do you mean "shoved down our throats"?
Is it just an excuse to get you a free pass on bugs?
When is the press going to realize that Java != Javascript? (Or Java !== Javascript, even!) Comparing "Java" performance between browsers is meaningless. (And isn't what SunSpider does anyway.) Comparing JavaScript performance has a very real impact on the users.
Javascript + Nintendo DSi = DSiCade
Is "GA" a common abbreviation? I assume it's a contraction of "generally available", but I did think of, and discount, a few other possibilities first given it's used in conjunction with IE8;
God Awful (too obvious)
Grizzly Adams (not sure where the bad 80s drama comes into things)
Ground to Air (IE could be a Weapon Of Markup Destruction..)
Goatse Arse (Ass if you're American)
Gabon (.ga is the country code for there..)
Standards Non-compliant (using Microsoft Alphabet)
http://twitter.com/onion2k
How many people are going to try a browser because "it is faster?" It is great for the people who already use Firefox, but the majority of new Firefox users had the kid who knows computers down the street install it for them. Those using IE are probably going to continue to use IE until someone manages to get across to them how bad an idea it is, or until whatever apps they are using at work which only work in IE are replaced.
As far as I can see, this is a comparison of Firefox 3.1 with IE7, not IE8 as the summary seems to imply. I am as happy as the next man that FF3.1 is faster, but as a benchmarking exercise, this is pretty limited. How about a comparison including IE8, Opera, Chrome and Safari?
Does the AwfulBar in 3.1 still force you to match against EITHER everything (meta tags, page titles, history) or only what you type?
If so, not interested.
I don't know where that leaves Firefox, but it isn't a nice place.
If you've even remotely been keeping up with FireFox, WebKit and IE progress, it's no surprise that IE8 fares poorly. It fared poorly the day it was released, which was about two months ago. Why are we getting this story now?
As a side note, IE8 does fix the pathologically bad performance IE6/IE7 exhibited on certain SunSpider benchmarks. That alone should improve its overall SunSpider score by an order of magnitude. Its javascript engine will still be 2-3X slower than FireFox and Safari, but it will at least be in the same "ball park".
For the life of me, I can't understand why Microsoft continues to abandon its strength.
It feels like the .NET koolaid is coming even to the IE team. Microsoft's .NET push now borders on maniacal, standardizing on .NET and in places where it should not be standardized. Performance matters, particularly when processors aren't getting any faster, just more parallel. Microsoft's has left C++ to languish, has all but abandoned C, and as such has no real performance tool in their own arsenal.
At the same time, the OSS community is actually slogging through and solving some of the difficult problems of making large projects in C++ that perform - getting better experience with the STL, when to use and when not to use, changing compilers to respond, developing automated testing methodologies to overcome what the compilers can't detect, and so on.
There should be no reason for the Windows desktop to be stagnant for fast applications, but Microsoft has basically abandoned it and is pushing developers to do the same. All the new display stuff in Windows requires .NET.. one wonders, how long will it be before Linux has similar systems but are presented as a simple C library that any system can use, regardless of whether it is a managed platform or not.
This is my sig.
I don't see that the things they mention are fair or informative tests. Yes, there's some browser infrastructure involved but other components are doing most of the work:
Maybe Firefox 3.1 is much faster than IE 8 but this article doesn't tell me anything new.
I hope 3.1 gets out the door soon. FF3 won't work on my mac at all - crashes, bad page renders, missing css, broken javascript.
which is still better performance than I get with IE.
What Microsoft will do is push updates through Windows Update to speed up the IE8 JavaScript engine, upgrade users to another minor release, etc, whatever needs to be done. It allows them to get to market faster. Microsoft's got the push-update down to a fine art so they don't have to have a better product at release date. I'm loving Chrome right now.
It's not like IE has not been a slow dog in javascript performance and standards adoption. Yeah, IE 7/8 are supposed to be an improvement, but since IE is years behind and their development cycles seem to be as slow as their javascript engine (probably due to compatibility) it's not like IE 8 or 9 is going to catchup with the rest of the browsers easily.
BTW, those benchmarks in TFA were probably run with the new tracemonkey javascript engine disabled (it need to be enabled manually in about:config). And my firefox nightly version passes 93/100 on the acid 3 test.
but by the looks of things firefox will have a lot of catching up to do when we start getting more than just a couple of cores in out cpus
thank God the internet isn't a human right.
I don't know about the rest of the world, but Firefox 3.0.3 sucks on my three XP machines. Version 3.0.2 worked just fine. I let Firefox upgrade itself to 3.0.3 and it immediately started crashing. It crashed so much that I actually had to use IE to download a copy of 3.0.2 to downgrade Firefox on those machines. And Firefox 3.0.3 crashes on my Ubuntu machine far far more often that earlier versions ever did (although I'm still using 3.0.3 on Ubuntu).
The NSA: The only part of the US government that actually listens.
I am one of many people in my circle of associates that has been waiting for improvements such as this.
I stopped using Firefox (and IE before it) specifically because the speed wasn't up to par, and am now happily using Opera.
Also, I don't really agree with your other point, it smacks of the same opensource arrogance that permeates discussions around here. Firefox is not so much better tha IE that your scenario actually makes sense and the assumption that people are ignorant or are forced to use IE is just wrong.
"The government grants you rights, not the other way around."-- beav007. Yes, these people really exist...
Does this version have the geotracing thing built-in? If so, I'm not touching it at all. I'm sure as fast as this may be, it would be even faster if they took out some of the "features" like awesomebar and made them into plugins that those who wished them could install.
Last time I checked, Ctrl+Tab switched tabs in Firefox 2, it's just a new flashy display in 3.1
"The issue is similar to the ones that have always plagued Java; you have to load massive libraries to do miniscule tasks and that causes noticeable overhead, when they were sadly intended to save time!" - by mfh (56) on Monday October 20, @11:02AM (#25441013)
When you load a library, & call out its API functions to leverage in another executable (usually an .exe)?
You don't LOAD THE WHOLE THING @ ONCE into the calling app's memory space - YOU ONLY LOAD THE FUNCTION PORTION YOU NEED, period.
(API function call loads from .DLL's are NOT an "all or nothing load" into a calling apps' memory space (in-process calls))
----
"Firefox is simply more minimal, and it is through their actively sought after security footprint that they deliver better performance by default" - by mfh (56) on Monday October 20, @11:02AM (#25441013)
AND, FF doesn't do, or is by itself incapable of, doing much of what IE can in Intranet environs for businesses' internal apps (especially those that use ActiveX controls, or even some functions of .NET via say, ASP.NET).
Every considered that much?
APK
P.S.=> It's hilarious sometimes, when you "purely web guys" try to describe HOW the underlying OS really works, as well as its API (because most times, most of you are way, WAY wrong) in Windows, & the person I am replying to here is just yet another example! apk
http://msdn.microsoft.com/en-us/library/cc351024.aspx
If they had simply added to this list: CSS 3 columns, multiple backgrounds, and
border-radius, I think I'd be pretty satisfied with it. *sigh*
Well, that's also not taking into account the abysmal js performance
it's going to have compared to FF3.1, Safari/Chrome & Opera.
At least they got most of CSS 2.1 in there. We can treat it as the
retarded sibling, rather than the quadriplegic sibling that has to be
turned a couple of times a day so it doesn't get bed sores.
I think IE8 will be a great competitor to Firefox.
Firefox v1.5.
The article seems to be comparing Java and Flash load times as both the examples the writer gave are of Java and a giant Flash application... neither of which test true browser loading performance and "JavaScript" performance as I'm sure most people are curious about.
This is like me reviewing the new Honda Accord by saying it's 10x faster than the Lexus when being dragged by a tow-truck.
Super-internet-logic fail
IE sadly remains superior in foreign speaking societies where sometimes lack of standard compliance designs in websites makes it the obvious choice.
About a month ago I ran a set of benchmarks to test IE8, FF3.0, FF3.1, Opera, Chrome and Safari on a number of JS and DOM benchmarks. The results are a little outdated (both WebKit and FF3.1 have made big strides in performance in this month alone) but should stand to compare where IE8 is (not IE7). I'll give you a hint: not favorably.
The test and analysis is at my blog and the raw data is here.
To be fair, I'm pretty sure in *nix this is not the case, calling a function in a library requires the entire library to be loaded into memory. Of course I can't think of a good reason to load a library into an app's memory space, isn't it loaded into shared memory and mapped in to each process that needs it? (AFAIK mapping is almost free compared to loading a library). Libraries do have global variables, so just loading the function likely wouldn't work, you need at least the shared variables, and those variables could well contain function pointers. Plus the function you call could well call other functions, it doesn't seem helpful to just load one section of the library, you'll need the rest anyway.
BTW, I'm not a web person, just also not an NT person.
The right to protest the State is more sacred than the State.
I'm holding out for FIrefox 3.11 for Workgroups
IE 8 is a major revision.
FF 3.1 is a minor revision.
Just about any version of Opera is faster than them both.
Learn to compare things.
Where's the SilverLight test, huh? I bet IE wins that one..
Wait, are you really claiming ActiveX is an advantage?
I don't know the meaning of the word 'don't' - J
I mean, OK, it's nice to have the name and URL both in the dropdown from the location bar, but do they have to use so much space doing it?
Camino had that months earlier, without burning nearly as much real estate on it.
Most unices use mmap() to load executables and libraries. Pages from such libraries are mapped on demand.
The summary mentions IE8 more than once, but the article is comparing Firefox 3.1 to IE 7 (yes SEVEN - you know, the OLD one!)
The Javascript engine in IE8 is much faster than the one in IE7, so it's a pretty unfair test in the first place and should never have been posted in the first place.
Many posters above already seem to be confused about the IE7/8 thing.
Still no support for border-radius or box-shadow, even in "-vendorPrefix-box-shadow" form since it's still a draft?
Same goes for Opera, BTW.
"Of course I can't think of a good reason to load a library into an app's memory space" - by andymadigan (792996) on Monday October 20, @11:35AM (#25441539)
Less overheads in message passing! Simple...
----
"Libraries do have global variables, so just loading the function likely wouldn't work, you need at least the shared variables, and those variables could well contain function pointers. Plus the function you call could well call other functions, it doesn't seem helpful to just load one section of the library, you'll need the rest anyway." - by andymadigan (792996) on Monday October 20, @11:35AM (#25441539)
Every wondered WHY the use of GLOBAL VARIABLES is frowned upon? This is another reason why (not just because some errant or just other function call changes that value when it feels like it, despite another thread possibly acting on the value it is using currently)... I think you've actually helped make yet another case here WHY using global vars can be 'touchy/dangerous' in fact!
----
"To be fair, I'm pretty sure in *nix this is not the case, calling a function in a library requires the entire library to be loaded into memory" - by andymadigan (792996) on Monday October 20, @11:35AM (#25441539)
The subject's about IE, correct? Does IE run on *NIX variants?? No.
It's about Windows & IE (inclusive of its abilities to run ActiveX controls, which you DO see used in web apps, especially .NET ones (e.g.-> CrystalReports)) on the portion I am talking about here.
APK
P.S.=> By the way, if you're faced with ENTIRE LIBRARIES loading ALL of their functions content into another calling applications' memory space on *NIX? That's rather inefficient, wouldn't YOU say??
I.E.-> Using GLOBAL variables is dangerous (potentially), & calling an entire LIB into memory, when all you NEED is a fraction of its size (in a particular function)??
A waste of memory space, especially if you load ALL/EACH/EVERY function section in *NIX libs that call said functions from *NIX libraries on disk (into memory)... massive memory waste on functions you do NOT need loaded!!!
AND
Massive process-to-process messagepassing overheads probably would result as well!
(PLUS? Generally, global variables are frowned upon, & I THINK you've hit upon 1 of the reasons why also)... apk
Windows memory maps executable images, including DLLs.
I use Firefox 3.x all the time and it seems to me the FF folks are so eager to get a grip on the market that they decided that some annoyances are acceptable. Such as, the Bookmarks click right after starting FF that shows the "Edit this bookmark" dialog instead of the actual bookmark list, an effect similar to the result of clicking on the star icon in the location bar (1, 3, ).
I'm not sure about this as its a relatively obscure part of OS/app interaction, but I thought only the parts needed to be paged in were loaded when the shared library was loaded - the right parts are known at compile time as the linker does its thing.
For dynamically loaded libraries, the OS doesn't 'load' the dll, it maps the dll into the app's address space, (you might like to check out rebasing to see what happens when the dll's conflicts with address range already used). Once mapped, only the parts that are needed are loaded in the usual manner (when there is a page fault) as the app uses part of the dll.
However, take the above with a pinch of 'look it up for yourself'.
I do know that .NET apps load all their library code in, especially those that are secured with strong names - the loader has to load it all in order to verify that no-one has tampered with it, and it has to load all dependant libraries and they have ... so sometimes your .NET load performance really sucks. Apparently they're going to do something about it (not sure what) but the WPF guys have said that if you want your WPF apps to perform, do not use strongly named assemblies.
Just lovin' it.
Just addin' some SVG links to http://svg.startpagina.nl
You've never been to a Microsoft seminar, have you?
I have, and that claim is new to me.
SunSpider is a Java benchmark? (Hint: Java != Javascript.) CA (the acronym referring to certificate authorities as a generic term) is a link to a quote for (the unrelated) CA, Inc.?
Ah well... hopefully Firefox 3.1 is as fast as they say.
Program Intellivision!
For dynamically loaded libraries, the OS doesn't 'load' the dll, it maps the dll into the app's address space, (you might like to check out rebasing to see what happens when the dll's conflicts with address range already used). Once mapped, only the parts that are needed are loaded in the usual manner (when there is a page fault) as the app uses part of the dll.
Well, I think the entire DLL is loaded into shared memory. What happens on the app level I'm not sure of, but it's "loaded." Whether nor not it's all mapped in another issue.
I do know that .NET apps load all their library code in, especially those that are secured with strong names - the loader has to load it all in order to verify that no-one has tampered with it, and it has to load all dependant libraries and they have ... so sometimes your .NET load performance really sucks. Apparently they're going to do something about it (not sure what) but the WPF guys have said that if you want your WPF apps to perform, do not use strongly named assemblies.
That's actually the opposite of what .Net does. Fusion (the .Net assembly loader) lazy loads all assemblies, so it won't load an assembly until you attempt to run code within that assembly. I'm positive about this, because I've accidently built an EXE and one library required a particular version of a core library, and another library a different version of that same library. Depending on which library got loaded first, the other library would throw an exception because the core library loaded was not the one it wanted. But if you never hit the second library you'd never get an exception.
I've never heard any WPF people say not to sign or strong name your assemblies; could you provide a link? It doesn't make sense anyway; all assemblies are loaded the same way, whether or not you're building a WPF application. Also, I know that with 3.5SP1, WPF load time was dramatically improved. But that's likely due to the WPF team speeding up initialization of their assemblies, because no one building WPF applications had to do anything at all.
I think it's Georgia. Internally Microsoft doesn't use terms like "alpha" and "beta": a product starts in "Florida" and moves closer to Redmond, so "Washington" means "bug-free". When it reaches "Georgia", it's ready to ship.
until they fix the goddamn egregious bugs they allowed in.
First there was the right-click bug where Firefox would on every X right clicks simply select on its own a menu option to run. Somebody tell me how the hell you release a browser with ANY QA testing with that kind of bug still in it!
Last time I tried it on openSUSE it seemed the right click bug might be fixed but then the browser crashed within MINUTES of using it on my usual sites.
Now they want me to trust them with a complete change of JavaScript engine? You KNOW it's going to be bug-ridden as hell.
It is to laugh.
It looks like I won't be using Firefox 3.x until "x" is somewhere north of 4.
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
"Wait, are you really claiming ActiveX is an advantage?" - by Progman3K (515744) on Monday October 20, @11:44AM (#25441677)
Try to do what Crystal Reports ActiveX controls (or, others) can do without using it (code it youself by hand in other words)... you'll see what I mean!
I.E. (pun intended) -> It's one HELL of an advantage to use proven ActiveX controls, just like proven API functions (std. type OR OLEServer types) are... most of all? YOU SAVE TIME & EFFORT using them!
(In laymen's terms? They provide, like API calls do, a "wheel that rolls well" & is PROVEN to be so, vs. 'building the wheel again by hand' & taking your chances on it functioning as well (as said ActiveX control does)).
APK
P.S.=> I am for them, especially in INTRANET environs (secured networks required, of course)... RECAP -> They save time, & provide necessary functions that are proven & work very well AND MOST OF ALL? They SAVE TIME! apk
I gave up reading the article when the author starts talking about 'java benchmarks' when he means Javascript...
-- Ed Avis ed@membled.com
I got upgraded to 3.0.2 and since then i get occasional crashes. It could be the flash on 64 bit... but anyway.
Patents Drive Free Software as Hurricanes Drive Construction Industry
It's having the entire browser freeze up because some plugin (I'm looking at you acrobat reader) is downloading and rendering. Why can't this be done on another thread and let me continue reading in another tab?
It's new to me too, because they simply don't say that - EVER. They would probably get fired for saying something like that. Tech-Ed, Desktop Advisory Council, Technology Adoption Programs, Global Accounts Deployment Council - I attend all of those in a year (some are twice a year) and they never say that they have a competitive advantage.
IE 8
Slow as an ox?
Why don't you switch
To Firefox?
Burma Shave!
Today's XKCD put that in my head. I couldn't resist.
The game.
I have been developing a few SVG based applications for the last 5 years and finally as of the 3.1 beta the performance is becoming acceptable(*). One of my applications is a control panel which has a number of SVG based buttons on it (somewhere around 30 buttons). In the past just moving the mouse over the panel would cause the CPU to chug along at nearly 100% utilization... but now that is mostly gone! Now you have to move the mouse pretty fast to see much utilization. Nice work guys, keep it up!
* On high-end hardware at least. Slower systems still can't handle anything very complicated. I'm hoping they improve performance even more because it's still very common to have a 1.5 Celeron or so (think netbooks) which still have problems with anything other than very basic apps.
Actually, !== places fewer restrictions on the operands than !=. !== implies that the value, the type or both are different. != implies that the value and possibly the type are different. !== would only make sense when you compare a software Java runtime to a supposedly-identical SoC implementation of Java.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
I can't find a Firefox button on my AOL!!!! How do I go to this Firefox thing??? PLEASE HELP!!!11
How is it that one careless match can start a forest fire, but it takes a whole box to start a campfire?
I'm a long term Mozilla fan (Mozilla Application Suite, Phoenix, Firebird, Firefox, I've used the lot as my main browser), but Firefox 3.1 is actually managing to exceed my expectations. It's being developed on time (I thought it would be delayed), it's even faster than Firefox 3.0 (I didn't really think it to be possible they could make it that much faster), they've found a good compromise with the awesomebar (which I actually like already), and they've just managed to hit 93/100 on Acid3 on Firefox 3.1b2pre (which is already past my previous prediction for "80-90/100" for Firefox 3.1 final).
I used to say that Mozilla would have to speed up development to stay ahead of the competition and keep Firefox around as my browser of choice. Firefox 3.0 certainly helped with this, and I see no indications that Firefox 3.1 will disappoint.
Also, note to whoever made this news post. It's "Firefox", not "FireFox". Your nerd credentials are officially revoked, please leave Slashdot immediately.
From tfa.
"but there are some new interface features as well. For instance, Cntrl-tab has been added as a shortcut to quickly switch between tabs."
It's no secret that the shortcut has been there for ages.
http://support.mozilla.com/kb/Keyboard+shortcuts
I read TFA, but I think they released the Beta version of the article. More and more interesting info here.
-- Cheers!
I guess getting JavaScript and Java confused isn't a surprise when you see that they call the Ctrl key the Cntrl key.
"For instance, Cntrl-tab has been added as a shortcut to quickly switch between tabs."
Evolution is a state-sponsored, state-protected religion.
It is my understanding that the primary advantages of FF 3.1 are speedups to Javascript and adoption of new HTML tags.
For me (and for much of the web browsing community, such as my cousin, aunt & father, e.g. the 50-84 y.o community) these are USELESS.
1) I am slowly converting my family entirely over to using Firefox with NoScript -- because *anyone* who allows random internet sites to run software on their machine is *nuts* [1].
2) A significant majority of "common" sites will not be using enhanced HTML tags because they have to continue to work with the installed browser base.
This is another example of Mozilla developers getting side-tracked with respect to what is important to *them* rather than what might be important to the community [2].
1. The *real* advantage of Firefox is the selected enabling of Javascript for a few "trusted" relatively non-commercial sites (e.g. gmail, ones bank, ones broker) using NoScript. I will assume the display of pages from such sites is relatively unimpacted by Javascript speedups (since they tend to be network bandwidth or user input consrained). [Though it is worth noting that the gmail javascript appears to be becoming a bit of a pig.]
2. It is worth noting that my cousin, my aunt and my father continue to survive on the internet quite well using dial-up connections (in large part because they live in regions where DSL (or fiber) is unavailable and Cable is too expensive). I presume that G3 service will fall into the $$$ category even when reasonably priced modems that can connect their computers to the net become available.
Who said anything about inter-process calls? You map the code section of each library into each process. The data section can be per-process (so that global variables are per-process). Do you honestly think it's a good memory v. CPU tradeoff to have the dynamic linker figure out which parts of a library you need?
mmap is pretty much free, in any case mmap a bigger segment vs. a small segment has approx the same cost. No efficiency loss there.
Also, note that I prefaced my comment that I was talking about *nix not Windows. However I really doubt that NT works the way you think it works, like I said having the linker figure out which functions you need (including dependent functions) would be very slow, and most libraries aren't huge. I suppose the compiler could pre-compute dependency trees for each function and throw them in the DLL, but that would increase file size and probably isn't worth it. No, I really doubt any working OS tries to load libraries piece-meal, they can easily mmap the library into the process and let the MMU figure out which pages the process needs. That still leaves the whole library inside the process.
Actually, your comment about IPC to call libraries, exactly what process did you think the library would be running in to call?
My point was that you don't load the lib into the process just for that one, you memory map the library (not the same as loading).
I still can't get over that you were stupid enough to think I was suggesting message passing.
Global variables are always local to the process, please understand mmap() before responding to posts about how OSs work.
The right to protest the State is more sacred than the State.
I installed the beta, ran it, messed around a bit. Closed it and reopened it and it announced it had upgraded itself. I literally "upgraded" the 3.1 beta directory executable back to 3.0.3.
Can anyone with any psychology training explain what disorder it is this APK guy suffers? I've seen several people, including some vague friends, express themselves with this style - with the CAPS and the weird symbols and the run-on sentences like they're out of breath trying so excitedly to make their point. Everything they say is expressed like this. The ones I know in person have all had a history of depression and have through recovery become very self-centred. What underlies this behaviour?
I'm guessing when your native language isn't English then the so-called awful bar probably rocks, since you can type in your native language to go to a site instead of using some western URL name. Maybe Mozilla just has their actual users in mind... iirc the majority of the net are not English speakers now.
Apparently /.'s unicode sucks... I can't make it say "Aweful" bar even with funky Latin characters.
I don't think average users care much for performance issues. They are usually on slower connections, don't have many tabs opened, and waste more time trying to figure out where to click next. For simple user who probably doesn't read very fast and doesn't have practice in navigating quickly through web pages is loading speed not very important. And for them it just makes no sense bothering installing some other browser because IE is already there and works for their needs. Its the perfect customer for microsoft - they don't need to have the best browser, its enough for them to have just any usable browser which is not falling behind that much. IE is perfect (even if not for us geeks) if its development was not expensive.
"After the criticisms about the "secret Windows APIs" Wikipedia the last thing M$ will do is to proclaim they have some exclusive "intimate knowledge"." - by DiegoBravo (324012) on Monday October 20, @12:03PM (#25442013)
IF you're referring to the "native NT API" (prefixed by Nt & zw in their function names, hence NtAPI/Native API)?
You'd be correct!
E.G. -> In that Native NT API calls functions, ARE faster!
(Albeit - afaik ONLY Marginally so, due to MS doing as good a job optimizing the Win32 API, but still faster (less overheads for 1 thing)).
I.E.-> Are they "World's Faster"?? From what I read, yes, IF you call them again & again + add up the time taken by them -> vs. calling the same analog function from a Win32 API call library (that distills down to ones from NTDLL.DLL anyhow many times - look @ the dependencies of many libs or apps, & see calls outta NTDLL.DLL & you can see apps using them (directly, or not))...
(& yes, you CAN leverage/use Native Nt/Zw API calls, DIRECTLY, in YOUR Win32 usermode (e.g. -> Apps you run under explorer.exe shell once you logon) app you code)
LoadLibrary functions (I use this as 1 method of calling & loading lib functions in Delphi, there are others too) in compilers ARE present in MOST compilers, & it's "amazing" what you can do with that in compilers for your code... & what you can call + use!
THINK OF IT AS "GOING DIRECT" (more hassles though, more code to put out, yourself many times)
----
Example (using NtCreateFile, a native NTDLL.DLL function (which IS 'native mode' & large core of OS itself)):
Opening a directory with NtCreateFile:
http://www.codeguru.com/forum/archive/index.php/t-355596.html
APK
P.S.=> Thing is though, they're NOT that "secret" - the Microsoft DDK (device driver kit) exposes a truckload of them, & people like Dr. Mark Russinovich (Microsoft/SysInternals) "decoded" (hacked/disassembled via debuggers) the rest from what I have read & exposed much/many of them to folks worldwide prior to his hiring by MS in fact... apk
Of course I can't think of a good reason to load a library into an app's memory space, isn't it loaded into shared memory and mapped in to each process that needs it? (AFAIK mapping is almost free compared to loading a library).
In a 32-bit operating system, if two libraries are compiled to use the same address space, and a program loads both of them, one library needs to be loaded and relocated. (A 64-bit operating system can just give 1 GB of address space to every library without breaking a sweat.)
I have (enough of them, anyway), since the mid-90s. Never heard such a thing from any Microsoft employee.
Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
Just about any version of Opera is faster than them both.
I use Internet Channel (Opera 9) on a Wii console (729 MHz PowerPC G3 CPU; 802.11g) and Firefox 3.0.3 on a nearly eight-year-old PC running Windows XP (866 MHz Pentium III CPU; Fast Ethernet). Slashdot's home page loads much faster on Firefox than on Internet Channel. Should I try it on Opera for Windows to make a fairer comparison?
Before another feature is added, before another UI pixel is tweaked, before so much as a single clock cycle of normal performance is optimized, I want FireFox to stop leaking memory and most especially to stop running up the CPU from 10% to 95% (as reported by top) several times a day even in safe-mode.
Yeah, I've tried about a dozen different fixes. I'm not here begging for help; that's what the tech support forums are for.
I'm just declaring: today I'm going to waste my afternoon uninstalling FF, wiping my profile, and re-installing FF from scratch, and I am not happy about that.
If that doesn't fix it, FF goes poof and doesn't come back until I read that this problem has been clearly identified and stomped flat. This is the kind of crap I left IE (and indeed, Windows itself -- I'm on Ubuntu) to get away from -- and no, I don't mean the CPU hogging.
I mean the attitude that feature creep and marginal tweaking is more important than fixing severe usability problems.
In the wrong hands, sanity is a dangerous weapon.
the problem is that Firefox 3.1 is slower than the final product because in the alpha's the new trace monkey which doubles it's speed is turned off by default.
Wow, so using a proprietary library can save you time? Who knew!
The benefit of not using ActiveX, even if it means you have to write some of your own code, is that your application is a lot more likely to work in more than one browser. When an application (web related or otherwise) requires IE components I tend to assume it has been designed by idiots. It's annoying when IE specific issues get in the way of an application running properly for example. That happened recently with one of our FEA tools - installing IE7 caused annoying errors to pop up all the time (and changing its security settings didn't do jack, ended up reverting the machine back to IE6).
The main reason I have started to appreciate web apps (I used to much prefer standalone apps) is for simple, reliable cross-platform compatibility. The computing world is a much better place to be when people use open standards and leave out the proprietary junk.
I'm pretty sure the only plug-in I use apart from ad-block and no-script - which don't really count as they're about removing content rather than adding it - are flashplayers for streaming videos. IMO we'd be better off with a streaming media standard for browsers, if one doesn't already exist. Flash does other stuff too obviously, but I don't need annoying flashing ads or fancy menus which only work on browsers that support flash. Flash and Java are great for cross-platform applications and games, but I don't want them in my browser - I'd be happy to download and run them in a standalone VM.
which is totally what she said
I just did a test of loading both. Firefox 3.1 took 17 seconds to load. That's from 'tap tap' until 'Done' and ready to accept input. MSIE 7 took 7 seconds to do the exact same thing. YMMV, of course, but this was into the same space on the same machine.
At least on my machine, MSIE is DEFINITELY faster to load. Also, Firefox doesn't auto-complete my URLs like MSIE does. (If there is a setting, I haven't found it.) This is very useful for how I use the web, anyway, and makes using Firefox a lot slower. It's klutzier to use.
In terms of rendering, I have to give it to Firefox--especially on a place like Slashdot. Meta-moderation, for example, won't even work--at all--using MSIE, but is a piece of cake with Firefox.
Of course, then you have Chrome. No wonder it has no market share. It's just about useless.
How about a moderation of -1 pedantic.
"I still can't get over that you were stupid enough to think I was suggesting message passing." - by andymadigan (792996) on Monday October 20, @12:52PM (#25442729)
INSULTS?
LOL, hey - I am NOT the one saying that every app that calls a lib's functions/API calls goes & loads the WHOLE body of said LIB (all of that LIBS' BODY OF FUNCTIONS) INTO THE CALLING APPS' MEMORY SPACE, AM I?
No... but, you certainly did... lol! See here:
"To be fair, I'm pretty sure in *nix this is not the case, calling a function in a library requires the entire library to be loaded into memory." - by andymadigan (792996) on Monday October 20, @11:35AM (#25441539)
Yup, it was you also, right there, in your first reply here, & the time/date stamp shows it...
Those ARE your own words quoted, after all, lol!
(That's in addition to others correcting you about it on *NIX as well... which you're apparently now trying to 'bite off of & claim as your own', to 'save face' here, maybe? Sure looks that way!)
I had to point out to you (& the init. poster mfh), how libs' API calls functions are also mapped to a process' internal address private space, as I noted... & THAT ONLY THE PART REQUIRED loads & nothing more.
Fact is? You stated COMPLETELY the opposite didn't you (yourself, AND the initial poster also)?? Again - see above, your OWN words.
(Based on your 1st/original reply though, which anyone here can read since I just requoted it (& others did, correcting you no less)? I figured you might have known the difference between in-process loads vs. out-of-process loads of lib functions, but, it's clear you did not (since you had no idea WHY one would load a lib into the process space of an app first of all, & that you thought an ENTIRE LIB loaded into a calling apps memory space))
----
"However I really doubt that NT works the way you think it works" - by andymadigan (792996) on Monday October 20, @12:52PM (#25442729)
Look it up for YOURSELF then...
It also appears that even others had to correct you on *NIX loads of LIB functions (where you stated it made no sense to only load portions of a lib into a processes' address space to use it, vs. you stating the whole thing should be loaded (you, AND, the init. poster I corrected @ least))
----
"mmap is pretty much free, in any case mmap a bigger segment vs. a small segment has approx the same cost. No efficiency loss there." - by andymadigan (792996) on Monday October 20, @12:52PM (#25442729)
Ok... A QUESTION:
ARE YOU TRYING TO SAY THAT IF I LOADED MORE FUNCTIONS FROM A LIB/DLL, THAT IT WOULD TAKE UP LESS MEMORY THAN ONLY LOADING A SINGLE FUNCTION SECTION FROM SAID LIB/DLL?
(You're wrong if you do, & that is the efficiency gain (I mentioned it earlier anyhow - less ram taken!))
----
I see based on his reply now, that he's "reading others' replies to he, & spitting them back"... hilarious!
Hey: It appears that your fellow *NIX people also corrected you (on *NIX no less), as I had to (regarding Win32 based OS, inclusive of NT based ones (NT/2000/XP/Server 2003/Vista/Server 2008)).
(This was only for your own good - so you don't make mistakes on this again as you have already once & others corrected you on... memory mapping is used on BOTH OS' by the by, same principal used on both, to achieve this "load only what you need from a lib" effect, vs. loading the WHOLE THING into a process' memory space (wasting memory, alone, which you made your mistake on))
----
"Who said anything about inter-process calls?" - by andymadigan (792996) on Monday October 20, @12:52PM (#25442729)
I did, because IF you're not calling a lib "in process", then you have "out of process" loads, & THIS (the latter) incurs messagepassing overheads... you aren't lea
as I don't run windows... just tell me how much faster 3.1 will be against 3.0 or Konqueror, or Opera on Linux...
Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
c:\>whatis mmap
:(
'whatis' is not recognized as an internal or external command,
operable program or batch file.
c:\>
Id love to now more about mmap, but it seems my linux box isnt working right
Go go Gadget Nailgun!
It almost looks like they just regurgitated an article of Firefox 3.0.
For instance, Cntrl-tab has been added as a shortcut to quickly switch between tabs. Also, tabs can be dragged and dropped between Mozilla windows, a feature that works well and smoothly.
Both of these are present and working well in my Firefox 3.0.3 on Ubuntu.
Oh, and it's not Cntrl. It's Ctrl or control, depending on your keyboard, but I've never heard one call it Cntrl.
Don't thank God, thank a doctor!
When you load a library, & call out its API functions to leverage in another executable (usually an .exe)?
You don't LOAD THE WHOLE THING @ ONCE into the calling app's memory space - YOU ONLY LOAD THE FUNCTION PORTION YOU NEED, period.
Unfortunately for you, stating something in all-caps and bold doesn't force it to be reality.
Each DLL's code is loaded once, globally (in most circumstances), the first time it is needed by the system (i.e. if your app links to it, and you start the application, the global instance of the DLL code is loaded.). It is loaded fully and completely, not partially as you stated.
The data portion of each DLL is specific to each app (usually), and a full copy is made by each and every application that references that DLL.
Alright, this is how I believe it works, keep in mind that "loading" and mmap-ing are similar in some ways (address space is used either way, and to the processit appears to be in memory).
Here is where you are wrong:
<quote>
I did, because IF you're not calling a lib "in process", then you have "out of process" loads, & THIS (the latter) incurs messagepassing overheads... you aren't leaving me with any choice here, but to mention that, to inform you of it.
</quote>
Memory mapped sections are shared between processes, and do not exist in any one process. Therefore the library itself is "shared" (not in-process) but not out of process. The entire library is mapped into your address space, and may or may not be in RAM. Entire pages of this library (page = 4K by default) are loaded at a time. The OS may therefore load more of your library than it strictly needs. Loading the same library in two processes will not require loading the library twice.
Yes, you deserved to be insulted for thinking that either the library was loaded into a process or it was out-of-process, mmap is very old and if you are going to comment on library loading you should understand it. The way I worded my original response was not entirely clear, and others phrased it better, however my meaning was the same.
The right to protest the State is more sacred than the State.
From the POSIX standard (man page format):
http://www.opengroup.org/onlinepubs/009695399/functions/mmap.html
Wikipedia:
http://en.wikipedia.org/wiki/Mmap
The right to protest the State is more sacred than the State.
The article compares Firefox 3.1 to IE7 which we all know has issues. Where was the side by side against IE8 beta 2? The only reason I choose IE over FireFox is the security problems. FireFox is known to have been much slower at fixing high priority security issues in the past. I do not mind IE with constant security hole if they are patched as soon as they are found. Once both are near final release i'll check numbers of speed again.
But did Mozilla fix all the issues in Fx3??
I frankly can't really enjoy Fx3 mainly due to two problems:
1. Time after time Mozilla would start doing something with disk and whole browser freezes, sometimes for as long as 10 seconds.
2. On bunch of sites Flash doesn't work. e.g. TheDailyShow.com
Due to Flash problems, I started using Opera now and -hey- 9.x series are not bad overall: very functional and no problems with Flash, no problems with interactivity.
All hope abandon ye who enter here.
They have bad save/open file system.
And when opening applications there are still many of them where you can't set default to always save because Firefox simply disables that option or ignores it. Fix that first.
If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
The vast majority of users do not see these problems. If you want a problem fixed, you should explain very specifically what the problem is. How would one see Firefox leaking memory? How would one see the Firefox running the CPU went it shouldn't? The problem isn't being identified because those experiencing it are not identifying what it is.
What a fool believes, he sees, no wise man has the power to reason away.
Have you checked your extensions for faults? I'm not having any stability problems whatsoever here.
Usually if there's an instability spike, some extension will be at the root of it, or everyone will have the same problem. And FF 3.0.3 works just fine for me and all of my extensions (noscript, adblock plus, etc.).
Speed means nothing if the browser is unstable.
http://support.mozilla.com/tiki-view_forum_thread.php?locale=eu&forumId=1&comments_parentId=172574
You don't LOAD THE WHOLE THING @ ONCE into the calling app's memory space - YOU ONLY LOAD THE FUNCTION PORTION YOU NEED, period. On a normal system, yes. But not if the machine is infected with MS Windows.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
WRONG (or rather, not COMPLETELY right, as regards the DATA section of a lib)!
(there is an OPTIONAL feature, as regards DATA sections, & has risks as well, if that option is used - but, it CAN be done... read on):
"The data portion of each DLL is specific to each app (usually), and a full copy is made by each and every application that references that DLL." - by thePowerOfGrayskull (905905) on Monday October 20, @01:52PM (#25443657) Homepage
Here's a little tidbit for you (ok?), specifically regarding the DATA portion of a lib/dll:
http://en.wikipedia.org/wiki/Dynamic-link_library
----
Memory management
In Win32, the DLL files are organized into sections. Each section has its own set of attributes, such as being writable or read-only, executable (for code) or non-executable (for data), and so on.
The code in a DLL is usually shared among all the processes that use the DLL; that is, they occupy a single place in physical memory, and do not take up space in the page file.
If the physical memory occupied by a code section is to be reclaimed, its contents are discarded, and later reloaded directly from the DLL file as necessary.
In contrast to code sections, the data sections of a DLL are usually private; that is, each process using the DLL has its own copy of all the DLL's data. ...
Optionally, data sections can be made shared, allowing inter-process communication via this shared memory area.
However, because user restrictions do not apply to the use of shared DLL memory, this creates a security hole; namely, one process can corrupt the shared data, which will likely cause all other sharing processes to behave undesirably.
For example, a process running under a guest account can in this way corrupt another process running under a privileged account. This is an important reason to avoid the use of shared sections in DLLs.
----
You're talking about the DATA section... I agree here, & never stated otherwise (show me where I did not)...
As you can see from the above excerpt, however?? Code sections get reloaded, as needed, for security & stability purposes.
QUESTION - NOW, if my application calls "FUNCTION A" from a dll/lib, & ANOTHER APP calls "FUNCTION B" from said dll/lib - do you think THIS is 'shared'?
----
(AND, ABOVE ALL ELSE - Again, the entire lib isn't loaded in ANY event into the calling app's address/process memory space (only the section with the functions you call for, not the entire lib - which is what I stated from the outset here anyhow! That's ALL I ever stated in fact!))
----
In other words? YOUR STATEMENT?? I never disagreed with on the DATA section, period (please, show me once, where I did)... & there are not only options for data, but the risks of this are noted above... however, since I was on the topic of CODE SECTIONS?
Well, you can see how I am correct (& twisting it to the data segment is not helping you here, I was about the functions sections (code sections)).
APK
P.S.=> Nice try boys... not good enough, for all of the reasons above... apk
Wouldn't it be easier and cheaper for Microsoft to pull a Google Chrome and just use somebody else's rendering engine and scripting engine and just fire 75% of their employees that maintain IE? What revenue does IE actually bring MS? I say they create their own browser front-end, fire the IE team and focus on more on Windows which actually earns them money.
"During My Service In The United States Congress, I Took The Initiative In Creating The Internet." -Al Gore
Unfortunately not, though I'll see if the link is in my work browser history.. but I did find this which does cover some of the topics mentioned. (the link I referred to was a webcast/ video powerpoint so you can imagine how easy it is to find the damn thing using google).
This link seems to cover some of the same things that I recall- especially the issues of re-hashing strong named assemblies.
$ whatis mmap
:)
mmap: nothing appropriate
$
Darn, looks like I'll never know. Oh and my browser isnt fast enough to use hyper links
(Some sarcasm please!)
Go go Gadget Nailgun!
Can someone please explain how I can upgrady to FF3.1 from 2.07 without looking my history, book marks and passwords?
I tried IE 6 to FF2 at one time, and it worked fine. Luckily all my links to external stuff was in my head or relatively meaningles. When I tried FF3 in top of FF2, all my saved links, history, settings and such went away. I look through the FAQs and HOW TOs and the various forums, and figured oyt that FF suffers from the same problem lots of other tech companies do -- the programmers who happen to know the most about the overall project get tasked with writing the manual. Knowing a lot and being able to explain it well to not correlate, exscept something negatively. FF needs a clearer, easier to navigate and find things in a, instructional flowchart. If there is one, they've managed to hide it well, another symptom of having programmers in charge of documentation. They're mind sets are prefaced with "well you should already know" and "all you have to do is" X, Y or Y', if X then Z, W, download ACB from D*; if Y' then close all programs, download DEFG installer, run it, it will put I on your hard drive which you can use to install ABC which will ask a lot of questions, start to do something, find an error and loop around to ABC and have it ask the same questions so it can loop again.
If I'm mistaken and FF3 can do this, that is upgrade the core without screwing up the external files or losing them completely, please let me know. I can read legal do uments easier than I can read FF's documentation, because the latter doesn't assume you already know everything, which if you did would make documentation unnecessary. The writers are stiill working, so they're still needed. If they would please write for their audience rather than themslves, they might serve to spread FF a lot more.
"I may be synthetic, but I'm not stupid." -- Bishop 341-B
With regard to compatibility:
In my company, we educate users to use IE only when accessing a known commercial site that works only with IE.
With regard to safety:
For general use all other users are educated to use Firefox (WITH Adblock Plus and WITH NoScript)
Why not Chrome?
I am still waiting for Google to give me believable reasons why Chrome is significantly safer than Firefox OR more compatible with commercial web sites than IE before I will permit it to be seriously evaluated for ease-of-use or speed considerations.
I guess I should add an "ask Slashdot" query as to the best combination of Firefox add-ins for a corporate environment. (It was the safety factors that enabled me to promote Firefox within my employer's organization in the first place.)
Live Long and Prosper - Thanks Leonard. You are missed.
"The data portion of each DLL is specific to each app (usually), and a full copy is made by each and every application that references that DLL." - by thePowerOfGrayskull (905905) on Monday October 20, @01:52PM (#25443657) Homepage
Did I state otherwise?
Hey - I only said that libs loading are not "all or nothing" into a calling apps' memory space... &, that's all I said! THAT PARTICULAR APPS' MEMORY SPACE IS WHERE YOU and I SEEM TO BE ON "DIFFERENT PAGES" (pun intended) HERE IS ALL!
(AND, Yes, the data section is USUALLY private (but, there are options for it NOT to be, but it's risky))...
----
http://en.wikipedia.org/wiki/Shared_library
"The shared library term is slightly ambiguous, because it covers at least two different concepts. First, it is the sharing of code located on disk by unrelated programs. The second concept is the sharing of code in memory, when programs execute the same physical page of RAM, mapped into different address spaces."
----
(ABOVE ALL ELSE - Again, my init. statement: The entire lib isn't loaded into the calling apps' private memory space when a process calls a DLL, & that is ALL I ever said, period (via say, LoadLibrary type calls in compilers))
There is shared memory for the ENTIRE lib/dll, as far as the OS memmgt. features are concerned... but, as far as apps calling a function from said LIB/DLL loaded area in RAM? The called libs' functions data is MAPPED INTO THE CALLING APP'S MEMORY SPACE, & this is all I ever meant... PLUS, the fact that executables (libs & std. exes) are 'backed on disk', where data is pagefile.sys backed, iirc/afaik, incidentally.
(& it only gets WORSE/MORE COMPLEX on Terminal Servers/Citrix rigs actually, because of their memory mgt., when you code around those)
I only stated that lib loads are NOT "ALL OR NOTHING INTO A PARTICULAR APPS' MEMORY SPACE" by the way - THE ONE THAT CALLED SAID FUNCTIONS FROM SAID dll/lib!
You're just making the distinction between the data & code segments here of a lib/dll...
In other words, as regards YOUR STATEMENT?
Hey - I never disagreed with on the DATA section, period - it's normally privatized & for good reasons!
----
(Secondly - as to DATA in LIBS? There is an OPTIONAL feature, in Win32, as regards DATA sections, & has risks as well, if that option is used - but, it CAN be done... read on):
http://en.wikipedia.org/wiki/Dynamic-link_library
----
Memory management
Optionally, data sections can be made shared, allowing inter-process communication via this shared memory area.
APK
P.S.=> Pardon the pun, but... are we on the "same page", here now? apk
Indeed this is true. While the simplest cases can be made that you can get away with only loading what you need to load the portions that are referenced this becomes rather difficult, actually impossible to do, thanks to our friend the function pointer. There is absolutely no way of predetermining what doesn't have to be loaded. Simplicity wins. Load the whole thing and share it.
Has it somehow become even dustier? Is there a small pile of dust on top of it now? Maybe with some mold going on?
Exploder, instead of Internet Exploder.
Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
This is a good point but it does beg the question:
"Why does MS feel the need to enable or load all functionality related to intranets, ActiveX, etc - in IE when 99% of the people who use it don't need those features?"
a) they are lazy developers who won't take the time to create a new app called Intranet Explorer
b) they are ignorant and think that everyone DOES need that functionality and so include it by default
A fool throws a stone into a well and a thousand sages can not remove it.
The OS memmgt. subsystems may load a libs/dll's ENTIRE BODY, globally, for sharing amongst apps (as far as libs/dlls are concerned), but, only the parts you NEED map into the calling application's private memory space (when it uses a lib/dll for its own uses).
"Memory mapped sections are shared between processes, and do not exist in any one process." - by andymadigan (792996) on Monday October 20, @01:55PM (#25443687)
Hey - Check this material below, ok? It's about the data segments of libs being absolutely privatized (in shared memory scenarios):
http://en.wikipedia.org/wiki/Shared_library
"The shared library term is slightly ambiguous, because it covers at least two different concepts. First, it is the sharing of code located on disk by unrelated programs. The second concept is the sharing of code in memory, when programs execute the same physical page of RAM, mapped into different address spaces."
----
The latter, bolded part (especially into different address spaces) is what you ought to be concerned about, as far as LIB/DLL loads!
AND, lastly, from one of your own here, because he has this much correct:
"The data portion of each DLL is specific to each app (usually)" - by thePowerOfGrayskull (905905) on Monday October 20, @01:52PM (#25443657) Homepage
The OS loads a lib, in whole, for sharing between ALL apps (but the calling apps only load the part they need, this IS all)...
HOWEVER, he apparently doesn't realize there is an option to load said data globally to ALL/OTHER APPS too...
E.G.-> An app can use UnloadLibrary to dump it from its own space (if loaded w/ LoadLibrary first, not "globally" (vs. something like VB Declare statements for instance) @ program startup (meaning it has to shut itself down to Unload it later, vs. using UnloadLibrary calls in the compiler code - which allow your app to drop reference to said DLL's code @ that point, rather than APP SHUTDOWN))
THIS NEXT, HOWEVER?
This he's incorrect about:
"and a full copy is made by each and every application that references that DLL." - by thePowerOfGrayskull (905905) on Monday October 20, @01:52PM (#25443657) Homepage
The OS may load a single shared copy, but all that goes into the calling apps' space via the linking process, is the part you called functions-wise (& any data that goes with it), BUT, NOT THE ENTIRE BODY OF THE DLL/LIB (going into the calling apps' private memory space).
----
"Therefore the library itself is "shared" (not in-process) but not out of process." - by andymadigan (792996) on Monday October 20, @01:55PM (#25443687)
Your calling application to a lib/dll loaded by the OS into memory only "sets pointers" to the function calls you need & this is ALL it loads into your application you coded's OWN PRIVATE MEMORY SPACE, as far as API functions from said libs/dlls being used in said app you created!
Called by your app 1 of 2 ways I know of!
1.) Via something like a LoadLibrary (which allows UnloadLibrary later mind you, prior to app shutdown, to deference this calling apps' handle to the lib/dll) call via your code in a compiler
OR
2.) Declaring it "higher up" in the code, like VB Declares do (Which means unloading has to happen @ app shutdown, only, afaik if done thus!)
THAT IS WHAT LOADS/LINKS (dynamically) INTO A CALLING APPLICATIONS' MEMORY SPACE (along with any privatized DATA segments) & that alone - NOT THE ENTIRE LIB INTO AN APPS PRIVATE MEMORY SPACE - ONLY THE PART/FUNCTION/DATA YOU NEED, period...
The OS' memory mgt. functions do the rest, & only load lib/dll materials INTO YOUR CALLING APPS' MEMORY SPACE WHAT IS NEEDED FROM THE LIB/DLL called (data is private to the app, usually, but can be made shareable (which IS, risky))...
Functions calls from
I installed the beta, enabled jit in about:config for both options, and i get the same performance in the raytracer here http://mark.webster.googlepages.com/jsrt-anim.html
javascript.options.jit.chrome
and
javascript.options.jit.content
what gives?
Looking for people to chat about multicopters, coding, music. skype: gtsiros
"Can anyone with any psychology training explain what disorder it is this APK guy suffers?" - by Anonymous Coward on Monday October 20, @12:53PM (#25442757)
Can a name tosser (when he has nothing else to offer) like you read or get a degree in it yourself before tossing such dispersions my way?
What is this lack of a PhD in psychiatry this "wannabe sidewalk psychoanalyst" I am replying to here has...?? Another "sidewalk surgeon" online, lol!
Got a PHD in psychiatry there, YOURSELF, buddy??
No???
If you're going to toss character assasinations attempts like that - I'd advise you get one of those, first!
(Figures, like usual - lol! The "std. my ass just got kicked" & I have to call others 'crazy' because of it)
LOL - Ahhhh, He's very much like Gary Weiss (A/C & all, plus casting psychological dispersions without himself being qualified to do so professionally) tried under "anonymous alternate guises" to Patrick Byrne, CEO of Overstock.com, when he tried to "blow the whistle" on Weiss & his fellow wallstreet crooks, here:
----
Emails show journalist rigged Wikipedia's naked shorts
Overstock's Byrne vindicated amidst economic meltdown:
http://www.theregister.co.uk/2008/10/01/wikipedia_and_naked_shorting/
PERTINENT EXCERPT:
----
"In the wake of the SEC's crackdown, the mainstream financial press has acknowledged that widespread and deliberate naked shorting can artificially deflate stock prices, flooding the market with what amounts to counterfeit shares. But for years, The Journal and so many other news outlets ignored Byrne's warnings, with some journalists - most notably a Forbes.com columnist and former BusinessWeek reporter named Gary Weiss - painting the Overstock CEO as a raving madman.
As recently as last week, Weiss told us he's never even edited Wikipedia.
But emails shared with Byrne and The Register show that Weiss has in fact edited the encyclopedia's article on naked shorting. And they indicate he's behind an infamous Wikipedia account known as "Mantanmoreland," an account that - with the backing of the site's brain trust - ruled the articles on naked shorting, Patrick Byrne, and Overstock from January 2006 to March 2008.
A single Wikipedia edit also links the Mantanmoreland account to a PC inside the Depository Trust & Clearing Corporation (DTCC). Owned by Wall Street investment banks that may have benefited from naked shorting schemes, the DTCC oversees the delivery of stocks on Wall Street."
----
Funny part is (sad part too, unfortunately)? Mr. Byrne, CEO of Overstock.com, was COMPLETELY RIGHT about the 'naked short selling' ruining our country in the Hedge Fund scandals...
APK
P.S.=> Ah, one must LOVE the "grammar/spelling" nazis & their 'wannabe I am a psychiatrist' jibes they try to send out to others... TOO easy to shootdown, due to their lack of degrees in said field... thanks for the amusement @ least!
Quit calling out to anyone here that might (or probably does not anyhow - because I'd like to see proof for 1 thing, & for another?? Big deal - psychiatry imo @ least? IS FOR THE WEAK MINDED - all the answers a person needs, are already in their own heads, anyhow!)
Also?
IF YOU HAVE TROUBLE READING? Might I suggest "HOOKED ON PHONICS", or, possibly going to see a physician about ADD or DYSLEXIA...?? apk
'Wow, so using a proprietary library can save you time? Who knew!" - by somersault (912633) on Monday October 20, @01:38PM (#25443461) Homepage
And, your point is what?
I am glad to see you agree with me though on this much... because that was my strongest point about them (proven code reusability, AND, time saving!)
Dlls/libs, doesn't matter if "std. old school dlls or OLEServer ones", inclusive of ActiveX controls usage!
Bottom-line: It's all std. code (API's) that's proven to save time & provide proven functions... this is all!
Man - lol!
(I.E.-> What a bunch of "clucking chickens" tend to infest this place @ times)
I mean, lol, hey... the other fool's trying to say "He's crazy" etc. about me... ah, like usual as well, the std. reply from those with nothing better than got their A$$E$ whipped online in forums is that I have found, lol!
APK
However, there IS still timing trouble (laggyness) exactly as you describe. Here's the details of my current report, Athlon 3500+ with integrated NVida 6150 (buried alive by Compiz Fusion with tons of glitz: rotating cube, two kinds of mouse-based window selectors, wobbly windows, etc.). Your box seems to be nearly twice as fast as my old one, running Linux.
I'll SWAG that test 77 is due to either unimplemented downloadable text (leading to selection of an alternate font already present on my box), or differences in Linux versus Windows font sizings of a font which is already available. Test 78 is clearly just not implemented at all, and Test 79 seems to be just a "minor" rounding error in something which is already implemented.
My build now includes a bunch of further Tracemonkey JIT fixes and enhancements which landed on the tree AFTER the beta branch was cut. I ran acid3 twice, and the second run was a bit faster than the first-- second results show above. But I've got oodles of other tabs open at the same time, and didn't bother to check out how much they hurt my results.
A RESPECTED WEBSITE (AS REGARDS LINUX VIRUSES & *NIX + viruses, in general), in SECURITYFOCUS.COM, & their statements on this issue:
http://www.securityfocus.com/columnists/188 [securityfocus.com]
SALIENT QUOTE:
"There are about 60,000 viruses known for Windows, 40 or so for the Macintosh, about 5 for commercial Unix versions, and perhaps 40 for Linux"
(Hell, IF I were to guess who is writing up most of these attacks for Windows????? I'd say *NIX users in fact, & mainly because of the type of "anti-microsoft/anti-Windows" sentiment & FUD spreading I see here around /., for instance!)
And, that's NOT mentioning worms that have shown up on LINUX too, no less, in the past...
---
Oh, & IF you're trying to say "LINUX IS INVULNERABLE"? See this (pretty reliable source, this very website in fact) ->
Red Hat, Fedora Servers Compromised:
http://linux.slashdot.org/article.pl?sid=08/08/22/1341247
----
Hell, apparently?
Even the LINUX distro's OWN OEM's cannot set it up right for security apparently, & EVEN IF you have an SeLinux bearing distro?? It needs WORK (added above & beyond OEM setup mind you) to make it more secure/as secure as can be!
APK
Leave the troll tagging to the "frosty piss" posts please.
AGAIN: The OS memmgt. subsystems may load a libs/dll's ENTIRE BODY, globally, for sharing amongst apps (as far as libs/dlls are concerned), but, only the parts you NEED map into the calling application's private memory space (when it uses a lib/dll for its own uses).
</quote>
No, the entire library is mapped into the process's memory space. In order to only map parts of the library, the dynamic linker would have to know every function the referenced functions depend on.
I know how shared libraries work, it is you that does not. Also note that I was talking about mmap-ing the "code" sections to share between processes. The "data" sections are not shared, which is what I said from the beginning.
IPC (interprocess communication) has nothing to do with this, you were the only one that though message passing was related.
The right to protest the State is more sacred than the State.
You are wrong in more than a few respects Andy, and your opponent gave you a much better explanation of what was intended here at the url below in reply to you
http://tech.slashdot.org/comments.pl?sid=1001489&cid=25445955
That is accurate and correct and shows you where you are wrong here. The very first statement he made there is correct and further explains his meaning in his first reply here better I feel.
Nice job apk.
http://tech.slashdot.org/comments.pl?sid=1001489&cid=25445955
"The OS memmgt. subsystems may load a libs/dll's ENTIRE BODY, globally, for sharing amongst apps (as far as libs/dlls are concerned), but, only the parts you NEED map into the calling application's private memory space (when it uses a lib/dll for its own uses)."
apk did a far better and more accurate explanation for others here, and it is more technically correct and accurate than you have put down in the post of yours I reply to now. In fact his posting's statement clearly shows where you are incorrect yourself. It is funny that that quote was done by the person you are replying to, because it is fully technically correct (unlike yours).
By the way, if you're faced with ENTIRE LIBRARIES loading ALL of their functions content into another calling applications' memory space on *NIX? That's rather inefficient, wouldn't YOU say??
That's not how it works. All of the library's .text gets mapped, but the actual data is shared, so there's only one copy in memory. And, if there are pages containing code that no one actually uses, those pages need never be loaded into memory at all.
"Windows memory maps executable images, including DLLs." - by ROBOKATZ (211768) on Monday October 20, @11:48AM (#25441773)
Right, & I've been TRYING to explain to certain others here, as regards libraries/dll's in Windows specifically, loading... via THIS very simple concept:
The OS memmgt. subsystems may load a libs/dll's ENTIRE BODY, globally, for sharing amongst apps (as far as libs/dlls are concerned), but, only the parts you NEED from a DLL/LIB actually get "mapped into" (dynamically linked is a better term) the calling application's private memory space (when it uses a lib/dll for its own uses).
AND?
ONCE ALL APPS HANDLES/REFERENCES TO SAID LOADED LIB/DLL ARE GONE THOUGH? THE OS UNLOADS IT as well!
(Yes, apps can do so, as far as removing their reference handles to dlls... but, faster imo, IF they used LoadLibrary (+ later, the UnloadLibrary) function calls though to release their reference handles to said lib/dll (especially if the lib/dll was NOT done like VB does, via DECLARE statements (or, near the top of a DELPHI program, belows its USES section), rather than waiting until application termination/hWnd Destroy etc. et al)...
iirc, the memmgt subsystem & object manager subsystems do this, in Windows NT-based OS (here though, I may be a WEE bit off though, as to the exact OS subsystems involved here - rusty here!)
APK
P.S.=> HECK - some others here may NOT accept this also:
You can even load 2 same named DLL's into memory, but, they must be of OLEServer variety
(Thus, they'd be marshalled/loaded by a GUID, not just a filename/libname, as std. DLL's are, which helped create "DLL HELL").
Also, there are "side by side assemblies" are another concept Windows has, but, iirc? This is in regards to .NET assemblies, not OLEServer or std. DLL types... apk
"No, the entire library is mapped into the process's memory space. In order to only map parts of the library, the dynamic linker would have to know every function the referenced functions depend on." - by andymadigan (792996) on Monday October 20, @06:41PM (#25447135)
It's loaded entirely for SHARING, by the OS, so other apps can call functions from it also, but NOT have to load another instance of said lib/dll yet again... but, not into a single app's memory/process address space only!
In fact, here is some documentation in this regards, just to "inform you better" (& so others don't repeat your outrageous b.s.):
http://en.wikipedia.org/wiki/Dynamic-link_library
----
"Memory management
The code in a DLL is usually shared among all the processes that use the DLL;
----
Note: That's the code sections Andy!
====
AND, here is some more, regarding the data sections:
"The "data" sections are not shared, which is what I said from the beginning." - by andymadigan (792996) on Monday October 20, @06:41PM (#25447135)
That much you have correct, but, you're WRONG on the code section (only handles are maintained by reference pointers to those functions, as I stated, & the OS increments & decrements those, as apps release said handles (via UnloadLibrary, OR, the app being shutdown))
http://en.wikipedia.org/wiki/Dynamic-link_library
----
"In contrast to code sections, the data sections of a DLL are usually private; that is, each process using the DLL has its own copy of all the DLL's data. Optionally, data sections can be made shared, allowing inter-process communication via this shared memory area.."
----
Care to dispute that Andy? All I ever said, was the ENTIRE BODY of a DLL is not loaded into a calling applications private memory space & it's correct. The data portions are, but not the code: This has handles maintained to the said lib/dll by the OS memmgt. subsystems, & that issues handles to the functions that apps call from the loaded lib/dll, only!
====
Apps DO NOT load another ENTIRE instance of said DLL, not unless it has the SAME name, & is marshalled by GUID (OLEServers/ActiveX controls type libs use these unique #'s to load), rather than by filename (which std. DLL types are loaded THIS way, by filename, & it helped cause "DLL HELL" for one thing... bad stuff by comparison to OLEServer DLL's &/or ActiveX control marshalling in fact))
====
CLUE, & ANSWER: Apps calling out to a DLL that is already in memory, DO NOT load another instance of the dll...
Especially IF IT IS ALREADY LOADED!
(Other apps calling functions from said DLL/LIB only maintain handles of reference to the first loaded DLL instance!)
The ONLY THING that unloads a lib/dll that many apps maintain function references to, is the OS' memory mgt. subsystem (once all reference handles from function calling apps cease calling out to said lib, it gets unloaded)... period. Apps can "dump their reference handles" to a shared lib/dll in memory, via the UnloadLibrary function (iirc, if loaded by LoadLibrary), or, waiting until they shut down & the OS memmgt. subsystems handles the dereference to the lib/dll file in memory.
Once all apps cease to maintain handles to said lib? It is removed from memory @ some point.
"I know how shared libraries work, it is you that does not." - by andymadigan (792996) on Monday October 20, @06:41PM (#25447135)
No, you don't, sorry to say... you're "off" on the code section, period.
Tell you what -> Answer the question I asked you above then... &, what you have to say vs. that which I just got online (because you evidently WON'T believe me)... then, We'll see what your
And people wonder why I choose to post anything even remotely controversial as Anonymous Coward.
The Troll mod on the parent is all the justifcation I, and any other AC's, need.
Speaking of twisting, note how I did /not/ say a copy of the code was loaded for each instance. I didn't, even though you seem to base your entire argument around it.
Not really. The OS loads the /entire code/ segment into memory. That's all I said; and it remains correct. I did /not/ say that each process loads it into private memory space - except in special circumstances (code blocks marked as read/write), that does not happen.
The issue is similar to the ones that have always plagued Java; you have to load massive libraries to do miniscule tasks and that causes noticeable overhead, when they were sadly intended to save time! Firefox is simply more minimal, and it is through their actively sought after security footprint that they deliver better performance by default.
In that context, the the OP is right - and your reply is wrong by omission. /That/ is what I was responding to. The OS loads the entirety of the code segment into memory - even if a single is requesting it, and that process needs only the smallest subset of the code. He did not mention the application's memory space - you raised that to argue against his valid point (and to insult him for no apparent reason, I might add).
"Not really. The OS loads the /entire code/ segment into memory. That's all I said; and it remains correct. I did /not/ say that each process loads it into private memory space - except in special circumstances (code blocks marked as read/write), that does not happen." - by thePowerOfGrayskull (905905) on Monday October 20, @08:27PM (#25448023) Homepage
Then, you & I are on the SAME page (pun intended), because I agree with THAT statement of yours, now, completely!
In fact? Here is some documentation/proof for you, in that regards:
----
http://en.wikipedia.org/wiki/Dynamic-link_library [wikipedia.org]
----
"Memory management
The code in a DLL is usually shared among all the processes that use the DLL;
----
Note: That's the code sections of a lib/dll!
====
Here is some more, regarding the data sections:
http://en.wikipedia.org/wiki/Dynamic-link_library [wikipedia.org]
----
"In contrast to code sections, the data sections of a DLL are usually private; that is, each process using the DLL has its own copy of all the DLL's data. Optionally, data sections can be made shared, allowing inter-process communication via this shared memory area.."
----
I also put this out for AndyMadigan as well, since he is contesting the part about code sections of libs/dll's being shared (yes, loaded ONCE globally by the OS, for sharing - if std. DLL by filename)
Can DLL's load more than once? Yes, even IF same filename (this is where OLEServers LIBS/DLLS are superior to std. ones)
OLEServer DLL's &/or ActiveX controls can load multiple images into memory, but, ONLY if marshalled by a DIFFERENT GUID!
(As OLEServers + ActiveX controls can be - same name, but, diff. guid WILL load them more than once... due to diff.'s in their interiors (be that diff. function names, OR, just diff. return types on functions of the same name, hence, why a DIFF. GUID & DLL is done @ all)).
The data section can be unique to each app (much as it is with shared docs, & if an app changes their private copy? The global copy gets an update, because said private copy is marked "dirty" by the OS memmgt. subsystems)... however, libs? Libs are "BACKED ON DISK BY FILE THEY CAME FROM", just like std. .exe's are... DOCS & DATA? Pagefile backed.
The code portions of libs?
As you can see, from the documentation above for my proof??
The code sections of DLL/libs is SHARED between all apps calling out to said DLL/lib in Windows!
(& the OS only increments/decrements functions reference handles to said lib/dll's functions @ that point, & ONLY loads that which makes that function run (& that is it, inclusive of ANY data sections in a lib/dll that may require))
APK
"You've made my point for me. *Code* is shared, and it is loaded ALL AT ONCE (to borrow your mannerisms). If it is unloaded, it is unloaded ALL AT ONCE. Clear now?" - by thePowerOfGrayskull (905905) on Monday October 20, @08:26PM (#25448007) Homepage
Yes, I know, & I posted the accompanying documentation to PROVE that to you, here (in my other reply to you in the URL below, but, also in this one later on in):
http://tech.slashdot.org/comments.pl?sid=1001489&cid=25448113
BUT, that shared section of a DLL/LIB? Just code portions, NOT DATA portions
(AND, the OS does NOT load the entire body of a DLL into that apps memory space ONLY, & that is ALL I ever said in fact!)
Heck - See my initial quote, from my first post in this exchange?
I will post it yet again, for you, now:
"You don't LOAD THE WHOLE THING @ ONCE into the calling app's memory space - YOU ONLY LOAD THE FUNCTION PORTION YOU NEED, period." - by Anonymous Coward on Monday October 20, @11:26AM (#25441395)
Time & date stamp verifies that as my FIRST statement here, & I was correct - KEYWORDS BEING "the calling app's memory space"... the OS loads it "GLOBALLY", for sharing amongst other apps that MAY be using said shared libs/dll's functions, but that is it. The OS just then increments/decrements reference handles to those functions as apps call out to them, FROM A SINGLE DLL/LIB copy (std. dll's that is)
----
PROOFS FOR YOU/BACKING DOCUMENTATION (since nobody believes just "me", lol):
http://en.wikipedia.org/wiki/Dynamic-link_library [wikipedia.org]
----
"Memory management
The code in a DLL is usually shared among all the processes that use the DLL;
----
Note: That's the code sections GreySkull!
====
AND, here is some more, regarding the data sections:
http://en.wikipedia.org/wiki/Dynamic-link_library [wikipedia.org]
----
"In contrast to code sections, the data sections of a DLL are usually private; that is, each process using the DLL has its own copy of all the DLL's data. Optionally, data sections can be made shared, allowing inter-process communication via this shared memory area.."
----
HOWEVER - OLEServers + ActiveX controls CAN load same named files, & MORE THAN A SINGLE COPY (without hititng "DLL HELL" hassles)... how?
The libs/dlls (OLEServers &/or ActiveX controls) use diff. marshalling GUIDS!
(They may have the same name, but, possibly due to diff. functions in them, or missing/deprecated/stub call ones in a newer one now) - this avoids "DLL HELL" that std. dll/lib types caused in the past in fact, & imo @ least? Makes OLEServer DLL's &/or ActiveX controls, superior (in that you CAN load & instance more than a single copy of the same named DLL/lib into memory, & have diff. apps call on the ones they INTEND to, & not just "by filename", as oldschool dlls/libs did).
Data sections in libs/dlls though, as you can ALSO now see? Are loaded "privately" to each calling app...
APK
AND, FF doesn't do, or is by itself incapable of, doing much of what IE can in Intranet environs for businesses' internal apps (especially those that use ActiveX controls, or even some functions of .NET via say, ASP.NET).
Every considered that much?
What can you do with ActiveX that you can't do with Java? Can you do any of it on any platform other than Windows?
What can you do with ASP.NET that you can't do with basically any other web development environment?
Finally, what about the continuing issue that you can't load two DLLs with the same name? (Or is that finally fixed?) On Linux I can load two libsdl.so (or whatever) libraries at the same time.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Bah, I started writing this post, trying to explain to you what the competition really is and when I got near the end I got bored when I realized you're such an idiot. I'm not bothering.
Here's my experience with all the major browsers so far. I currently have the following browsers installed on my computer. On Vista: Safari 3.1.2 Firefox 3.0.3 Opera 9.6.0 Internet Explorer 7.0.6 On XP (virtualized on Vista using VirtualBox; all of these are pre-release): Safari 4.0 Firefox 3.1 Google Chrome 0.2 Internet Explorer 8.0 I have to say that, in terms of speed, Safari is the fastest of all these browsers I've tried. However, it seems to have more than its share of memory leaks (I've been running it now for about half an hour and it's using 250 MB). I haven't played around with the 4.0 beta yet to determine if there has been any stability upgrades, but it doesn't seem any slower than 3.1.2. Opera and Chrome are both nice in their own ways, though I disabled one of Opera's more prominent features, the mouse gestures (I find them annoying). I use both of them for common browsing, but I find that I tend to use Opera more for social stuff and browsing, and I use Chrome more for doing particular tasks, such as checking my e-mail or the like. Internet Explorer 7 is awful, tends to crash a lot, and snails along compared to my other browsers. IE8 has some significant standards improvements (but is still miles behind the competition), and appears to be at least marginally faster and less buggy than 7, but I'd still choose another browser over it. It's also got what are called "accelerators," which are basically plugins that let you do things such as define words using the context menu. In other words, stuff other browsers have been able to do for years. Lastly, I have Firefox optimized for security and functionality, so I tend to not use it for common browsing. However, the 3.1 beta (which I don't have configured this way) seems to have a good balance of speed, stability, and standards support, and doesn't have any feature bloat to bog down my browsing experience.
On a side note, what's up with Firefox 3 and its over-agressive cache policy? It's been a pain to use it for JavaScript developing, having to hit the Clear Cache Button before every refresh...
Isn't there a patch for it already?
So the latest version of Firefox is faster than an older version of IE. No shit!
Why not use their brains and do some benchmarks of both browsers in beta. Like IE 8 Beta 2 compared to Firefox 3.1 Beta.
So many simple minded sheep here, it is not even funny.
Have a problem? FF addons are to the rescue!
Oh yes, there's 30 extensions to fix every problem with Firefox, and by the time you're done fixing them all it's locking up every five minutes. Been there, done that, decided that NOT using extensions was the "slim" way forward.
How about making the default minimal, and leaving the spam for the spam fans?
The problem with SVG is often not the CPU but the graphics card... Most of what's needed to do SVG fast can be offloaded to the GPU, if the GPU is up to it. Of course with netbooks you lose on that front too.
"Finally, what about the continuing issue that you can't load two DLLs with the same name? (Or is that finally fixed?) On Linux I can load two libsdl.so (or whatever) libraries at the same time." - by drinkypoo (153816) on Tuesday October 21, @12:48AM (#25449745) Homepage
I covered this already in this exchange with others here in this thread earlier, &, a couple times in fact, but... here goes, again:
With OLEServer DLL's (&, yes, ActiveX controls), you can!
Imo? Hey - They're superior to "std. old-school libs/dlls" in certain regards (such as being able to load multiple instances of them into memory, even IF they have the same filename)...
That's because you 'marshall' (load) them using GUID's (globally unique identifiers), rather than just using filenames!
(Which is what "old-school/std. dll's" did, & part of what led to the phenomenon known as "DLL HELL" (mixed versions of dlls/libs on disk, that had diff. function return types, or stub/deprecated calls, &/or missing functions entirely even & more, between said diff. versions of libs/dlls on disk))
This allows for a "load by unique #" rather than "load by filename" into memory!
(Where libs/dlls of all kinds load themselves into a common shared space for calling applications to leverage shared proven functions from said lib/dll in their own address space, mapping in/loading in, only the data portion & PARTICULAR CODE SECTION (function they require) from said lib/dll ONLY, into their OWN PRIVATE MEMORY ADDRESS SPACE)... & it also allows for multiples of the SAME NAME to load (since they're really loading "by number", instead of JUST BY NAME).
----
"What can you do with ActiveX that you can't do with Java?" - by drinkypoo (153816) on Tuesday October 21, @12:48AM (#25449745) Homepage
Run ActiveX controls in IE, natively (w/ out assist via 3rd party tools)... can't do that in other webbrowsers, afaik, without somekind of 3rd party assist @ least.
----
"What can you do with ASP.NET that you can't do with basically any other web development environment?" - by drinkypoo (153816) on Tuesday October 21, @12:48AM (#25449745) Homepage
Again - run it with FULL function in IE, even though some stuff is purely "server side" in say, ASP.NET... where it WON'T display or work properly in say, Opera &/or FireFox.
E.G.-> As 1 single example, I've run into it with CrystalReports before, doing ASP &/or ASP.NET related work in the past...
(I.E. -> IE can do things other webbrowses can't, in other words, & utilize them absolutely properly... Things like loading various custom controls in ASP.NET developed applications for reporting (& more), ActiveX & more, + run them fully/completely, as to their complete featureset)
Whereas you can't expect that in other webbrowsers (I have seen this much doing ASP.NET more than just a few times, testing using FireFox &/or Opera (as much as I like them both, vs. IE? IE has a superiority here in that it can leverage tools, FULLY, that the other 2 cannot))...
Now, for personal use online, do I prefer IE over say, FireFox or Opera (my favorite in the latter)? No.
----
"Can you do any of it on any platform other than Windows?" - by drinkypoo (153816) on Tuesday October 21, @12:48AM (#25449745) Homepage
No, but, that's part of my point (a strength/capability Windows has, in ActiveX native running in IE + other Win32 apps): Something Windows CAN DO, that other OS platforms, can't... Windows runs a technology other webbrowsers either don't, or can't w/out assist, & yet it runs all of the others you mentioned (where other OS & even webbrowsers, just cannot or cannot well or w/out 3rd party assisting tools/addons).
APK
P.S.=> ActiveX has seen its share of hassles though (largely in security vulnerabilities hassles etc.) but, inside of
Why shouldn't Firefox be allowed to reuse Windows Kernel Code?
Slashdot = Sarcasm
"All of the code sections are mapped into the process, that does not mean they are loaded in RAM, but if the application calls a function in a given page it is loaded. This avoids the system needing to know which functions the application will call, while losing some address space. The reason for creating DLLs is to allow multiple applications to share the same code and to allow the library (which may have OS-dependent calls) to be updated independently from the application (so long as ABI is maintained this can be accomplished). - by andymadigan (792996) on Tuesday October 21, @01:28PM (#25456263)
That's it, right there, on your part (finally)... but, you omitted MUCH of what I covered, that this document from Microsoft covers in detail:
----
DLLs and Memory Management:
http://msdn.microsoft.com/en-us/library/ms681914(VS.85).aspx
AND
Advantages of Dynamic Linking:
http://msdn.microsoft.com/en-us/library/ms681938(VS.85).aspx
----
I covered nearly ALL, if not all, of that material in my replies to you. You did not, not by a LONG shot, by way of comparison... & anyone reading could verify that much with ease in this exchange between yourself & I here!
I * think * you & I were on the same page, as far as INSTANCING a DLL/LIB, for the MOST part, but it's more of a "word play/semantics" thing now, @ this point, as regards my terms of loading/dynamically linking, vs. your stating memory mapped files usage.
However? Apparently, ONLY after you had read the documentation I had put up though, were you able to properly & correctly revise & restate your views on this, vs. your initial statement I quoted last reply of mine here to you...
I mean, you certainly NEVER listed the amount of detail you do now.
I had, however by way of comparison, covered much of this process ALL THRU my exchanges here w/ yourself, & others.
For instance??
You completely OMITTED the fact that apps calling out to libs/dlls only load (page into their working set) what they need CODE-WISE, from said libs/dlls, as needed (but, not every function is immediately paged into the WORKING SET mind you, & the data segment goes along in full though).
(I didn't find your definitions precise enough of this entire process, in other words... )
HOWEVER - I tried to NOT insult you, as you have on the converse, numerous times to myself (& you have tried to, here now, yet again... ugh! It's NOT necessary man! I can say, however, on a GOOD note, that this was great review & discussion w/ yourself, & others here (this is one of the harder topics imo, & so is memory mgt. in general))
----
"I'm not trying to save face here, I really doubt anyone is reading this except you - " - by andymadigan (792996) on Tuesday October 21, @01:28PM (#25456263)
Hmmm, you are putting in an AWFUL lot of effort then... &, You're forgetting someone - yourself... lol!
----
"but if you don't understand how little you know you might be dangerous." - by andymadigan (792996) on Tuesday October 21, @01:28PM (#25456263)
That's funny - because my replies had a LOT more detail of how libs/dlls load & work, than yours did... by far. I covered the entire gamut of this process... Did you, ever? No.
The PRIME example here? This omission from yourself, really:
----
Load-Time Dynamic Linking
http://msdn.microsoft.com/en-us/library/ms684184(VS.85).aspx
SALIENT QUOTE:
"The DLL is mapped into the virtual address space of the process during its initialization and is loaded into physical memory only when needed."
----
I still haven't read any of that documentation, as far as I'm concerned this was simply trying to word things such that you would understand them.
I work on Linux/Unix systems, I have written several vector space matchers and other components. I will not reference my work here since I do not wish to involve my employer in such discussions. For all your supposed accomplishments you do not seem to understand the basics of operating systems, nor civilized discussion.
This is a forum, not documentation on dynamic loading of libraries. I was merely attempting to correct your mistaken views on how libraries work.
I have also released, through my employer, several open source works.
All that has been said here can be summed up by saying that the code section of a library is mmap'd when it is loaded. However you seem to have at least learned how mmap works, which I suppose is a good thing.
The right to protest the State is more sacred than the State.
AND, FF doesn't do, or is by itself incapable of, doing much of what IE can in Intranet environs for businesses' internal apps (especially those that use ActiveX controls, or even some functions of .NET via say, ASP.NET).
I thought ASP.NET ran entirely on the server side, producing HTML/JS/CSS just like any other server-side language. So how is it possible that features of ASP.NET on the server can impact the usability in Firefox?
"This is a forum, not documentation on dynamic loading of libraries. I was merely attempting to correct your mistaken views on how libraries work." - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
What mistakes are those? I made none - @ least, not from a Win32 point-of-view.
(I even later backed up EVERYTHING I said with documentation from Wikipedia, and later, MSDN no less - since you refused to believe "little ole' me", so-to-speak)
----
"I work on Linux/Unix systems" - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
Though it's much the same as a *NIX viewpoint as it is in Win32 terms, the terms used are different. I think this is where you & I have been having troubles.
NOW - You seem to think that a mapped view of a file sends that lib/dll into the working set of a process, & it doesn't.
It sets the ENTIRE body of a dll/lib it into the VIRTUAL ADDRESS space, but that's not the actual amount of memory (yet) that the process uses (working set in Windows-speak)
and
Also that the entire BODY of the DLL/LIB does NOT go into that WORKING SET space - only the code sections/functions called on + data section from a lib/dll that get called out of the globally loaded shared space (so other apps can use that lib also) get loaded into the actual WORKING SET of a calling application's process.
----
"All that has been said here can be summed up by saying that the code section of a library is mmap'd when it is loaded." - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
You work on *NIX primarily it seems... & I think you've hit on WHY you & I aren't communicating well here: I work primarily on Win32... & for a GOOD body of this, you & I expressed the same points, just using diff. terms.
----
"However you seem to have at least learned how mmap works, which I suppose is a good thing" - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
In Win32, that's done via CreateFileMap & MapViewOfFile Win32 API calls. I always knew what was used for that in Windows API calls anyhow, which is why I stated that you seemed to be mostly on the same track I was, but, you are using diff. terms.
----
"For all your supposed accomplishments" - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
They're not supposed, they're actual, & if you would like proofs thereof (from noted written publications in the art of computer sciences such as Windows IT Pro magazine, plus their dates, & pages from them where my work was featured)? I can easily supply them!
(This is what I mean - you try to take "pot shots" @ me here, constantly, alongside others... please... enough already)
----
"you do not seem to understand the basics of operating systems" - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
Hey, I am not the one who can't differentiate between VIRTUAL ADDRESS SPACE, & the actual WORKING SET of a process. I clearly delineated that point & extolled how/when/where/why libs-dlls load into both areas & how (in Win32 @ least).
----
"nor civilized discussion." - by andymadigan (792996) on Tuesday October 21, @04:54PM (#25459689)
Hey, I am not the one tossing names OR trying "snide little remarks" directed your way, am I? I just put out facts, WITH backing documentation (since you constantly avoid points I make when I do so, & since they backed words I said in replies before them, since you refused to believe me when I said it, without them).
APK
http://slashdot.org/comments.pl?sid=1001489&cid=25454257
"Again - run it with FULL function in IE, even though some stuff is purely "server side" in say, ASP.NET... where it WON'T display or work properly in say, Opera &/or FireFox." - by Anonymous Coward on Tuesday October 21, @11:26AM (#25454257)
Already been stated... you have it right (for MOST things it does, it runs them server-side, generating code & sending back XML afaik to the calling webbrowser client)... which is WHY I called it a "better ISAPI", here, also:
" (ASP.NET = a better ISAPI imo, in a way, is what ASP.NET sort of is, & its faster than std. ASP pages were) " - by Anonymous Coward on Tuesday October 21, @11:26AM (#25454257)
Because, like ISAPI DLL's? It runs server-side...
APK
"That's not how it works. All of the library's .text gets mapped, but the actual data is shared, so there's only one copy in memory. And, if there are pages containing code that no one actually uses, those pages need never be loaded into memory at all." - by SL Baur (19540) on Monday October 20, @07:06PM (#25447339) Homepage
I know this, which is WHY I asked that question (that was a rhetorical question to AndyMadigan & others here - note the question mark @ the end of my statement you quoted? Thanks)...
So there would be NO DOUBT as to any of this I put out here.
(&, I put out things regarding this, & on a lot more than just that, such as showing how/when/where the code sections get mapped into a process' WORKING SET (not just virtual address space)), here:
http://tech.slashdot.org/comments.pl?sid=1001489&cid=25459279
AT that point, I had to put out literal documentation from Microsoft, to show this difference between VIRTUAL ADDRESS SPACES, & WORKING SETS applications have, & what portions of libs/dlls go where into them, & how!
(the actual memory a process is USING = WORKING SET, not just mapping to its own space (VIRTUAL ADDRESS SPACE))
In that URL above, in fact, I outlined the entire process, with backing documentation no less, from Microsoft's MSDN:
----
Load-Time Dynamic Linking
http://msdn.microsoft.com/en-us/library/ms684184(VS.85).aspx
SALIENT QUOTE:
"The DLL is mapped into the virtual address space of the process during its initialization and is loaded into physical memory only when needed."
----
That's done (memory mapping into virtual address space) so it can find the exported DLL function call tables from a lib/dll it calls upon, & then import them + the code called on (JUST THAT FUNCTION, not others @ that time), INTO THE WORKING SET of the calling application's process (& the exported functions CODE block, the single function called on, not more than that in ALL of the other functions a lib/dll has), + data sections fully get hauled into the working set address space of an application calling on a DLL/lib)
APK
P.S.=> Read a few posts here, and you will see I already covered that much, and FAR MORE also, in regards how libs/dlls load-instance, & how their code sections ONLY load into a calling application's working set (actual memory in use by a process for work) + data sections also going into it fully etc. & far more... apk
Another version and Gecko still does not support styled cut and paste between Firefox and OS X. I'll have to stick with Safari 4.0 until they get Gecko right or they abandon it as too cumbersome to repair.
Be as you would have the world become.