Slashdot Mirror


New Firefox Project Could Mean Multi-Processor Support

suraj.sun writes with this excerpt from Mozilla Links "Mozilla has started a new project to make Firefox split in several processes at a time: one running the main user interface (chrome), and another or several others running the web content in each tab. Like Chrome or Internet Explorer 8 which have implemented this behavior to some degree, the main benefit would be the increase of stability: a single tab crash would not take down the whole session with it, as well as performance improvements in multiprocessor systems that are progressively becoming the norm. The project, which lacks a catchy name like other Mozilla projects (like TaskFox, Ubiquity, or Chocolate Factory) is coordinated by long time Mozillian, Benjamin Smedberg; and also integrated by Joe Drew, Jason Duell, Ben Turner, and Boris Zbarsky in the core team. According to the loose roadmap published, a simple implementation that works with a single tab (not sessions support, no secure connections, either on Linux or Windows, probably not even based on Firefox) should be reached around mid-July."

300 comments

  1. As a Developer the Question I Have Is ... by eldavojohn · · Score: 5, Insightful

    Why isn't everyone doing this?

    As chipmakers demo 64 or 128 core chips, why aren't we coding and being trained in Erlang? Why aren't schools teaching this as a mandatory class? Why aren't old applications being broken down and analyzed to multithread components that don't interact? Why isn't the compiler theory concentrating on how to automate this (if possible)?

    It's becoming obvious the number of cores is going to far outweigh the number of applications we'll be running five years from now (so you can't leave it up to the OS) so why isn't this a bigger concentration now in application development?

    I understand a lot of server side stuff can take advantage of this (in the nature of serving many clients at once) but it's only a matter of time before it's typical on the desktop.

    --
    My work here is dung.
    1. Re:As a Developer the Question I Have Is ... by stillnotelf · · Score: 5, Funny

      Splitting your application into threads mean you have to get them to communicate with each other. When's the last time you met a programmer who loved communicating? There's nobody else in Mom's basement to practice on!

    2. Re:As a Developer the Question I Have Is ... by A+beautiful+mind · · Score: 1

      Two easy answers:

      On the serverside you just fire up a few more processes.
      On the clientside you rarely need the juice that multiple cores provide. Processor speed still keeps improving _per core_. In most cases it is simply not worth the effort yet.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    3. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 4, Insightful

      As a recent college grad, I had one course in which threads came into play; it was in the course that introduced GUI work, so our GUI wouldn't freeze while a worker thread was running, but that is the area where single-threading is most apparent to the user, after all.

      There isn't all that much room for undergrads to take courses on threading though; the course I took it in was the highest-level course that's required of all CS majors, and even still, that was only one semester after taking our "Intro to C and Assembly" course.

      Realistically, an in-depth course on good threading implementation is at the graduate level, but there isn't a large percentage of CS majors that go on to graduate work.

      --
      Convert FLACs to a portable format with FlacSquisher
    4. Re:As a Developer the Question I Have Is ... by I'mTheEvilTwin · · Score: 5, Funny

      It's becoming obvious the number of cores is going to far outweigh the number of applications we'll be running five years from now

      The number of cores (at least some chips) already outweighs the applications you can run if you run Winows 7.

      --
      -- This sig is in Spanish when you are not looking
    5. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 0, Troll

      Only if you run Starter Edition, which is aimed at "emerging markets" only.

      --
      Convert FLACs to a portable format with FlacSquisher
    6. Re:As a Developer the Question I Have Is ... by sopssa · · Score: 2, Interesting

      I wish Opera will catch up soon to this aswell. Its a great browser, but when it does crash on some page whole browser goes down. They have to soon, seeing all other major browsers have implemented it.

    7. Re:As a Developer the Question I Have Is ... by miffo.swe · · Score: 1

      One of the problems with multiprocessor applications is that many tasks doesnt become that much faster no matter how many cores you throw at them. I/O from disk and memory can often has much higher impact on performance than more CPU cycles. Often with even one core you spend countless of cycles wating for things to finish on the disk or in memory etc. With multiple cores even more cycles are wasted waiting.

      More cores arent a solution to the brick wall that the chip makers have hit, its an interim solution until we get faster cores or better designed ones.

      Some applications like browsers can benefit from more cores but its no use redesigning and reimplementing every app just for the fun of it.

      As for servers one of the problems is that the current solution of running many services on one hardware is a bandaid. My hopes are native services that can be moved, load balanced between hardware and coexist without virtualisation and all the overhead it brings both in CPU, Mem and service.

      --
      HTTP/1.1 400
    8. Re:As a Developer the Question I Have Is ... by I'mTheEvilTwin · · Score: 1

      I know. It was a joke. Ya know funny ha ha?

      --
      -- This sig is in Spanish when you are not looking
    9. Re:As a Developer the Question I Have Is ... by MrMr · · Score: 1

      As another developer I have to ask: Where did you learn to program? Because this is standard part of any curriculum I know of since the early 1980's.

    10. Re:As a Developer the Question I Have Is ... by k.a.f. · · Score: 4, Insightful

      Why isn't everyone doing this?

      Because multi-threaded programming is really really hard to get right, and because most programs either are not CPU bound, or else have so much inherently non-parallel logic that the benefit would be marginal. Serving multiple independent tabs in a web browser is extremely amenable to parallelization, but almost everything else isn't.

    11. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 2, Informative

      As chipmakers demo 64 or 128 core chips, why aren't we coding and being trained in Erlang?

      Every mainstream programming language has facilities for multithread programming and there's no need to learn a new one just to do it.

      Why aren't schools teaching this as a mandatory class?

      Multiprocessing is a key theme of operating systems courses, which are in the core curriculum of all CS programs. Many other courses also cover synchronization primitives, IPC, and other topics useful for multithreaded programming.

      Why aren't old applications being broken down and analyzed to multithread components that don't interact?

      It's usually difficult to retroactively add such features to applications that weren't originally designed with them in mind.

      Why isn't the compiler theory concentrating on how to automate this (if possible)?

      Compilers do parallelize when possible. It's usually not possible without intervention by the programmer.

      It's becoming obvious the number of cores is going to far outweigh the number of applications we'll be running five years from now (so you can't leave it up to the OS) so why isn't this a bigger concentration now in application development?

      It is a major issue in modern application development.

      I understand a lot of server side stuff can take advantage of this (in the nature of serving many clients at once) but it's only a matter of time before it's typical on the desktop.

      Yup.

    12. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      It's not aimed at "emerging markets" only. Windows 7 Home Basic is.

      Starter edition is to be pre-installed onto netbooks.

    13. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      Thank you for the clarification.

      --
      Convert FLACs to a portable format with FlacSquisher
    14. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 5, Insightful

      Erlang is a very poor choice for true multi-threaded programming. It does "lightweight" threads very nicely but real multi-CPU stuff is very slow. To the point that it negates using multiple processors in the first place.

      While I like programming in Erlang, its performance sucks donkey balls. Even the HIPE stuff is pretty damn slow.

      Plus the learning curve for functional languages is pretty high. Most programmers take a good bit of training to "get it", if they ever do. I have been programming in Erlang for about 5 years and even though I get it, I still prefer the "normal" programming languages like C/C++, Lua, Perl, whatever. I use functional tricks and I wish some of those imperative languages had more functional features but I think they work more like the human mind does and that helps me program better.

      We do need something to make multiple-CPU programming easier though. Threaded programming in C/C++ or similar can turn into a nightmare real quick, it's error prone and complicated.

    15. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      As a recent college grad, I had one course in which threads came into play; it was in the course that introduced GUI work, so our GUI wouldn't freeze while a worker thread was running, but that is the area where single-threading is most apparent to the user, after all.

      There isn't all that much room for undergrads to take courses on threading though; the course I took it in was the highest-level course that's required of all CS majors, and even still, that was only one semester after taking our "Intro to C and Assembly" course.

      Realistically, an in-depth course on good threading implementation is at the graduate level, but there isn't a large percentage of CS majors that go on to graduate work.

      My concurrency class was in second year. It was the pre-req' for the third year OS class. There is plenty of room to teach it in the undergrad curriculum.

      I also took a grad level parallel computation course. Because of my undergrad course, I learned very little form the grad course. Concurrency really isn't that advanced of a concept.

    16. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      why aren't we coding and being trained in Erlang.

      Because the name is kinda gay.

      And Joe Armstrong doesn't have a beard.

    17. Re:As a Developer the Question I Have Is ... by nxtw · · Score: 1

      Why aren't schools teaching this as a mandatory class?

      Because it is a niche language.

      Why aren't old applications being broken down and analyzed to multithread components that don't interact?

      Many programs already use multiple threads and were threaded before multi-core systems were common. The modern Windows shell (explorer.exe) has been multithreaded since it was introduced in Windows 95.

      In general, anything obvious and easy to parallelize has probably been already.

      Why isn't the compiler theory concentrating on how to automate this (if possible)?

      See automatic parallelization.

    18. Re:As a Developer the Question I Have Is ... by timeOday · · Score: 3, Informative

      No, your post and the one you replied to are off base, because firefox is already multithreaded:

      # ps -eLF | grep firefox
      user 23146 20837 23146 0 1 468 496 1 15:26 ? 00:00:00 /bin/sh -c firefox
      user 23147 23146 23147 4 6 43763 59000 0 15:26 ? 00:00:12 /usr/lib/firefox-3.0.7/firefox
      user 23147 23146 23149 0 6 43763 59000 0 15:26 ? 00:00:00 /usr/lib/firefox-3.0.7/firefox
      user 23147 23146 23150 0 6 43763 59000 0 15:26 ? 00:00:00 /usr/lib/firefox-3.0.7/firefox
      user 23147 23146 23154 0 6 43763 59000 1 15:26 ? 00:00:00 /usr/lib/firefox-3.0.7/firefox
      user 23147 23146 23155 0 6 43763 59000 1 15:26 ? 00:00:00 /usr/lib/firefox-3.0.7/firefox
      user 23147 23146 23156 0 6 43763 59000 0 15:26 ? 00:00:02 /usr/lib/firefox-3.0.7/firefox

      And when I tried it just now, opening a new tab spawned a new thread (maybe more than one).

      The question for this article is, why separate processes instead of threads? If you have processes sharing memory (especially read/write memory) this distinction between threading vs. multiple processes becomes rather small.

      I do hope they can firefox survive a plugin crash, because youtube always locks up firefox eventually.

    19. Re:As a Developer the Question I Have Is ... by ushering05401 · · Score: 1

      On the client side *you* might rarely need the juice that multiple cores provides.

      Until I can actually complete a full workweek within an optimized multicore operating environment I am not going to limit my expectations for these technologies.

      As it is, I am constantly aware of the cycles that are dormant on my client boxes, and I would gladly experiment with truly parallel, low power machines in place of the speedy toasters I currently run. The one requirement being a userspace that is optimized for the hardware - and that doesn't exist.

    20. Re:As a Developer the Question I Have Is ... by twidarkling · · Score: 1

      It may have been a joke, but it certainly wasn't funny.

      --
      Canada: The US's more awesome sibling.
    21. Re:As a Developer the Question I Have Is ... by danhs7 · · Score: 1

      I believe we need better tools.

      Right now, as others have noted, threading is hard and complex. Shared memory is tricky. In the shared memory threading model, one thread can modify data, while another thread is completely unaware that the data it is operating on has actually just changed! It's a very tricky model and can introduce all sorts of tricky, difficult to track bugs.

      Separates processes are a lot simpler since each process has its own unshared memory. As of today, I don't believe there are enough tools to make managing concurrency simple.

      People on slashdot (and elsewhere) keep on saying "a lot of programs won't benefit because they're sequential". Most program execution time is spent inside loops: do work on one thing then do work on the next thing. These can be run in parallel very easily. All we need are the right tools to make it simple.

      We're starting to build the necessary tools. They're not there yet to make concurrency a "no thought necessary" free lunch. But, look at the tools that have already emerged (and are still quite young): the entire functional programming-inspired stack map/reduce etc, CUDA, and languages like Erlang and Haskell, etc...
      A few years ago when I was looking for Python libraries to do concurrent programming it was quite difficult. Now the multiprocessing module is in the standard library of Python 2.6; that is a major step forward that makes multicore processing significantly simpler.

      I think that big, high profile projects like this will encourage the necessary innovation to develop those tools: necessity is the mother of invention. When big open source projects hit new problem requiring new tools the broader community tends to benefit.

    22. Re:As a Developer the Question I Have Is ... by Tony+Hoyle · · Score: 2, Interesting

      Really? Not that I noticed. I was tought Pascal, Ada, 68000 machine code, and they let us play with a little C off the record. Oh and Cobol, of course. No threading at all. That was around 1990.

      Having talked to programmers who qualified more recently, it hasn't got any better except they now get to learn C 'officially'. It takes around 6-9 months for a new programmer to pick up how things are done in the real world after being through the education system.

    23. Re:As a Developer the Question I Have Is ... by Tony+Hoyle · · Score: 1

      Multiprocessing is a key theme of operating systems courses, which are in the core curriculum of all CS programs. Many other courses also cover synchronization primitives, IPC, and other topics useful for multithreaded programming.

      If only it was.. life would be so much simpler.

      In truth 'operating systems' often means little more than learning machine code. Schools teach the bare minimum the pass - it's not worth their while to start on non-core subjects. The average graduate I see can't even *spell* IPC let alone do it.

    24. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      I agree it's not that advanced, but there's not much room for it, with all of the other topics that need to be covered.

      Here's an overview of the courses I took that were required for my degree:
      -Intro to CS (C++, covered basic concepts, not even really getting into OO basics)
      -Intro to CS, Pt 2 (C++, covered OO, classes, basics of pointers)
      -Data Structures (Java, nothing but hashes, lists, trees, etc)
      -Software Design (Java, mostly about how to structure OO designs well)
      -Intro to C and Assembly (covered pointer arithmetic in detail, machine architecture, and other low-level concepts)
      -Operating Systems (C, covered things like memory allocation, caching policies)
      -Programming Languages and Concepts (first half in Java, dealing with threading and GUIs, second half in SML, covering functional programming concepts)
      -Object Oriented Programming (C++, covered advanced OO concepts and designs)

      Those are all of the courses required of every CS major at my school. We also had three "CS elective" slots, which we could fill with courses like networking, AI, graphics, or OS programming, but not every undergrad was required to take those, and they were mixed undergrad/grad classes, so I even if there was an advanced course on concurrency that covered it in further depth than "write a GUI with a worker thread", I didn't take it. As a result, I wouldn't feel comfortable designing a program that had threads interacting with each other without guidance.

      --
      Convert FLACs to a portable format with FlacSquisher
    25. Re:As a Developer the Question I Have Is ... by X0563511 · · Score: 1

      Once upon a time, the core(s) were the bottleneck.

      Once the storage bogeyman is taken care of (as I'm sure it will eventually) what will be the new bottleneck?

      This is the nature of the beast. Kill one, and more take it's place.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    26. Re:As a Developer the Question I Have Is ... by X0563511 · · Score: 1

      Why isn't the compiler theory concentrating on how to automate this (if possible)?

      Compilers do parallelize when possible. It's usually not possible without intervention by the programmer.

      I think he's wondering why more effort isn't being spent on getting the compiler to do it more intelligently. I don't know whether or not that is happening, I'm not in the industry.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    27. Re:As a Developer the Question I Have Is ... by idontgno · · Score: 4, Informative

      Well, at least in the Unix/Linux model, processes are mostly independent, memory-wise. Shared memory is an explicit thing, under the category of Interprocess Communications (IPC). Under no condition does a fandango-on-core in one user process trash non-shared core in another process, and shared memory is generally restricted to shared-context communications, so both a smaller victim space and functionally more resilient. (Code using IPC shmem expects it to be volatile, and well-written code that uses IPC shmem vets its contents carefully before using it, so catastrophic oopses should be rare.)

      Compare that to the more modern thread model, which, in almost every architecture I'm aware of, mostly runs in exactly the same user space. If a thread eats atomic hot buffalo wings, all its brother threads in the same process get the same heartburn. The upside, barring badness, is that thread management is lightweight: no need to copy the parent memory image to a separate allocation and set up full process "OS bureaucracy" data structures. In contrast, it's practically "wave your magic wand et voila you have created a new thread". Very responsive. Very fragile.

      I think this responsiveness is a lot of the reason to love threads. And that "crashing" stuff? That never happens to me. So I don't need to worry about how fragile threads are.

      ObDisclaimer: it's been a few years since I've done any hardcore coding, so I may have missed some important details. If I did, I'm sure someone vastly smarter than me will be happy to point it out.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    28. Re:As a Developer the Question I Have Is ... by CajunArson · · Score: 3, Informative

      Erlang's great until the share-nothing approach leads to so much overhead in pushing bytes back and forth between processes that you are spending more time copying bytes than actually doing work. Not saying that normal thread models are always better, but there is no "perfect" multiprocessing model and Erlang has its own pitfalls. As for Firefox, you are basically running a series of stovepipes where it makes sense for each tab to have a separate process... why it has taken so freakin' long for this I don't know, but it's not a new idea (hell I posted it right here on Slashdot back when FF3 was just coming out... lemme check.... here.

      --
      AntiFA: An abbreviation for Anti First Amendment.
    29. Re:As a Developer the Question I Have Is ... by needs2bfree · · Score: 1

      IBM has a tool platform that is useful for developing C/C++ projects on.

    30. Re:As a Developer the Question I Have Is ... by RiotingPacifist · · Score: 1

      Wouldn't the point of the course be to teach them about threading (perhaps using erlang), they can then use those skills to thread in other languages.

      --
      IranAir Flight 655 never forget!
    31. Re:As a Developer the Question I Have Is ... by radarsat1 · · Score: 1

      Why do you think this isn't the case? There's plenty of research in exactly the areas you describe going on right now. It's all over the programming blogs and research papers, everywhere I look (when searching for programming-related topics) there is a tutorial on functional programming. Are you living under a rock or something?

    32. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      In some applications, memory bandwidth is already the bottleneck.

      --
      Convert FLACs to a portable format with FlacSquisher
    33. Re:As a Developer the Question I Have Is ... by setagllib · · Score: 3, Insightful

      There's a much more important reason to use threads instead of processes + IPC, and that's that inter-thread communication is a sub-microsecond matter. Even the context switch between multiple threads (in the same process) is so cheap you can have way too many threads and still not see the overhead if you're also doing real work. In Linux much of inter-thread communication happens entirely in userland, so you don't even suffer the cost of a system call. You can go even further and use atomic operations to make data structures and algorithms that never need system calls to begin with, and that's about as fast as you can get with threading.

      --
      Sam ty sig.
    34. Re:As a Developer the Question I Have Is ... by lord_sarpedon · · Score: 1

      It's a very strange trend to me.

      Tab processes must have some way to access global data and state. A shared memory approach is quite likely. So now, instead of a tab crash directly bringing down others, you just hope that nothing scary happens to the shared memory area. You also hope that your "crash" isn't some other failure like a deadlock - suddenly everything else hangs trying to get the mutex for the global bits? What if a plugin gets exploited in just one tab? Then the exploit code can use its unsandboxed state to fuck you over just like normal?
      Maybe they'll use some kind of messaging passing instead. Blazing fast I'm sure.

      What do we gain here? Less crashing due to shoddy code? A huge chunk of such flaws end up being exploitable. We get more overhead and marginal security/stability benefit as a band-aid for not using a language that is at least a bit provable.

      --
      "Strangers have the best candy" -Me
    35. Re:As a Developer the Question I Have Is ... by Amazing+Quantum+Man · · Score: 2, Informative

      -Operating Systems (C, covered things like memory allocation, caching policies)

      This is the class that should have covered multiprogramming issues.

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    36. Re:As a Developer the Question I Have Is ... by eh2o · · Score: 1, Insightful

      Any bloke can use a thread and a few locks, or toss in some OpenMP pragmas on a for-loop. But what about: priority inversion, memory barriers, atomic operations, lock-free data structures, concurrency under deadline scheduling, deterministic concurrency, automated task-graph analysis. Not advanced concepts?

    37. Re:As a Developer the Question I Have Is ... by fuzzyfuzzyfungus · · Score: 1

      While that is true, in some cases(and browsers are definitely one of them) the point isn't really performance; but stability.

      Sure, it'd be nice if my browser's UI is a tad faster, and doesn't miss a beat even if I load a horribly javascript heavy page; but the really nice thing is having my 35 tabs not be taken out by a single flash instance, or that one tab with deviousmalwarehackz.ru open.

    38. Re:As a Developer the Question I Have Is ... by Grishnakh · · Score: 1

      As this article has pointed out, we don't need to switch to Erlang to take advantage of multicore chips. All we need to do is make better use of multithreaded programming, which has been around for ages. One of the tags on this article said "abouttime": this is exactly right. Why wouldn't a tabbed browser put each tab into a separate thread. I already have 25 open tabs on my current Firefox session, and it seems a little silly that those aren't in different threads or processes in this day and age.

      Right now in computing, the hardware has gone way, way beyond what the software is capable of. Software engineering has a long way to go before it really takes full advantage of the potential of modern hardware, in my opinion. And all software applications are not created equal; as we see here, some are a little archaic in their design, and need to be updated.

    39. Re:As a Developer the Question I Have Is ... by johanwanderer · · Score: 4, Informative

      That's because most GUI applications are driven by events, and most applications are written to have just one event handler/dispatcher.

      That doesn't mean that the application doesn't have a ton of threads or processes, utilizing processor resources. It's just easier and more efficient for a single dispatcher to communicate with a bunch of threads than it is to communicate with a bunch of processes. It also means that when one thread catches the hiccup, the whole application has to deal with the collateral damages.

      Now, to make a GUI application multi-processes, you need to have a dedicated process to handle drawing and events. Add one or more processes to handle the tasks, and IPC to tie them together. In another word, you ends up reimplementing X :)

      Add a deadline to that and you can see why you end up with just multi-threaded applications.

    40. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      They covered multiprogramming issues, but there was virtually no programming involved with that class; we wrote three small programs. Most of the grade from that class was from the tests and quizzes, which were about half conceptual, and half "Which memory block gets evicted if we're using LRU?"

      --
      Convert FLACs to a portable format with FlacSquisher
    41. Re:As a Developer the Question I Have Is ... by Chirs · · Score: 5, Informative

      I think you are a bit confused.

      With linux, the only difference between context-switching between threads and between processes is the update of the page tables and the flushing of the TLB. Not normally a big deal.

      Also, I'm not sure where you get the idea that interthread communication happens in userland--threads share memory, file descriptors, signal handlers, etc., but things like sockets/pipes need to go through the kernel. Processes can be made to share memory too, it's just a bit more work to set up, and you need to be explicit as to exactly what is being shared. (Which can be an advantage.)

      Perhaps you're thinking about synchronization primitives which do not require a syscall in the uncontended case--if so, those are valid to use between processes as well.

      Multithreaded apps have the potential to be faster than multi-process ones due to the lack of TLB flush, but they're more fragile due to the shared memory. For something like a browser which is often prone to crashing on crappy plugins, it makes sense to aim for reliability.

    42. Re:As a Developer the Question I Have Is ... by Hurricane78 · · Score: 1

      I as a developer, have already changed to Haskell (and Java where I don't have a choice). Which is my language of choice, because I designed a language myself, and then noticed that Haskell did everything the same way, only a bit better.

      But apart from that, I second your comment.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    43. Re:As a Developer the Question I Have Is ... by Hurricane78 · · Score: 2

      It is not hard to to get right, when you leave side-effects out of the language. Because of the determinism and independence from other parts of the program, you can easily split the code processing, and even cache results wherever it helps. Automatically. (Of course you can still manually control it.)

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    44. Re:As a Developer the Question I Have Is ... by hairyfeet · · Score: 1

      Uuuhhhh...because web browsers also need to work on mobile devices which are more concerned about power usage than having a large epeen CPU? I mean on the desktop, sure, I am building big fat multicore XP boxes as fast as I can get the parts delevered. Most folks want the big and bad even though 99.999% of the time with the tasks they are doing the CPU is sitting there using 1% resources and twiddling its thumbs.

      But more and more of our computing is going mobile, and that means low power. Folks who I frankly thought would NEVER go mobile like my 67 year old luddite dad now have laptops. Add to the laptops the netbooks, the ARM based netbooks and phones, etc and I can see how this could turn out to be the wrong direction to take. MSFT doesn't care because they use a completely different IE on WinMo than they do on the desktop. But with Mozilla one of the best things about it IMHO is I can fire up Firefox or Seamonkey and have the same experience be it on desktop, laptop, netbook, ARM, etc.

      If it goes to a multithreaded model I can see how we could end up with a fractured market, where things like extensions work on some version of Firefox and not others. I for one would rather have one Firefox that works wherever I want it to be, without having to worry about which versions works with what. Whether they will be able to pull that off and go multithreaded, I guess time will tell. But I like the fact that i can use the Firefox browser perfectly fine on this 1.1GHz Celeron and when I put together my new AMD dual core next week I simply import my bookmarks and everything "just works" the same on both machines.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    45. Re:As a Developer the Question I Have Is ... by Hurricane78 · · Score: 0, Offtopic

      How will the computers in those "emerging markets" run Windows 7 anyway?

      By the way, did anyone notice this?
      95 -> 4
      98 -> 4.1
      Me -> 4.2
      2000 -> 5
      XP -> 6
      Vista -> 7
      7 -> 7

      Or how do they get to the 7? Looks like someone is acknowledging, that Windows 7 is just a service pack, and what Vista should have been. ^^

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    46. Re:As a Developer the Question I Have Is ... by Virak · · Score: 1

      As chipmakers demo 64 or 128 core chips, why aren't we coding and being trained in Erlang?

      Every mainstream programming language has facilities for multithread programming and there's no need to learn a new one just to do it.

      And there's no reason to learn a new language just for garbage collection if you know C, because C can do memory allocation too!

    47. Re:As a Developer the Question I Have Is ... by Sloppy · · Score: 2, Insightful

      Because multi-threaded programming is really really hard to get right

      In "why isn't everybody doing this?" the "this" refers to not doing multi-threaded programming; it means forking a process and talking over a pipe (or some other much-high-level-than-shared-memory IPC), which is actually pretty easy to do and hard to fuck up.

      The catch is, it tends to be harder to think up ways to split your program into multiple processes that can really be useful with such relatively limited IPC (relatively limited, as opposed to just sharing data structures, I mean). i.e. what is each side of that pipe going to be doing and what will they be talking to each other about? So: it takes more .. uh .. imagination(?), but less skill.

      And yeah, more people ought to try it out, because in situations where you can use this technique, it's really neat, and generally not as bug-prone (and that is the real payoff).

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    48. Re:As a Developer the Question I Have Is ... by ckaminski · · Score: 4, Informative

      The unix fork model is nowhere near as expensive as you think - it predominantly only creates process-unix OS datastructures - it will rely on shared code pages already loaded in memory versus creating new copies.

    49. Re:As a Developer the Question I Have Is ... by Your.Master · · Score: 1

      I was in engineering, not CS. Not even computer or electrical engineering, but I did take a lot of their courses when I had the option. I mostly did lots of heavy physics.

      I had MANY undergraduate courses that dealt with application concurrency, multithreadedness, and multi-processes applications. Off the top of my head:

      Distributed Systems
      Computer Systems Programming
      Operating Systems
      Networks
      Networks II
      Internetworking

      In all of those, it was of vital importance and kind of the focus. Additionally, I touched on it in:

      Compilers II (to be fair, this was joint 4th-year/graduate level)
      Digital Systems
      Computer Architecture (albeit at a lower level)

      I'm not saying you necessarily didn't do some cool shit in your courses, I'm just saying it can definitely be rearranged to focus on concurrency.

    50. Re:As a Developer the Question I Have Is ... by Endo13 · · Score: 1

      It may have been a joke, but it certainly wasn't funny.
      [citation needed]

      I think your humor engine needs a tuneup.

      --
      There is no -1 Disagree mod. Slashdot.org/faq defines mod options. USE IT.
    51. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      It's worse than you think:
      NT4 -> 4
      2000 -> 5
      XP -> 5.1
      XP-64 -> 5.2
      Vista -> 6
      7 -> 6.1

      So if they call the next retail product "Windows 8", it'll have the "Windows Kernel 7". How's that for confusing?

      --
      Convert FLACs to a portable format with FlacSquisher
    52. Re:As a Developer the Question I Have Is ... by Virak · · Score: 1

      It's a very strange trend to me.

      This seems to be because you haven't the slightest clue of such things.

      Tab processes must have some way to access global data and state. A shared memory approach is quite likely.

      Only if they're utter retards. The contents of the tabs should not need to communicate with the rest of the browser much, and thus using message passing with no shared memory at all would result in negligible performance impact.

      So now, instead of a tab crash directly bringing down others, you just hope that nothing scary happens to the shared memory area. You also hope that your "crash" isn't some other failure like a deadlock - suddenly everything else hangs trying to get the mutex for the global bits? What if a plugin gets exploited in just one tab? Then the exploit code can use its unsandboxed state to fuck you over just like normal?

      Addressed above; no sane solution would have these problems.

      Maybe they'll use some kind of messaging passing instead. Blazing fast I'm sure.

      Also addressed above; due to the tabs being largely independent of the rest of the browser, I'm sure it'll be plenty fast too.

      What do we gain here? Less crashing due to shoddy code?

      I'm sorry not everyone can be a Real Programmer like you, but most of us tend to make mistakes every now and then, especially on codebases with hundreds of thousands or millions of lines of code. Furthermore, even if they were Real Programmers instead of mere mortals and never made mistakes, there's still the very important fact that they don't have control over all the code that runs in the browser. There are these things called plugins, perhaps you have heard of them? In particular, Flash tends to be pretty shitty.

      A huge chunk of such flaws end up being exploitable. We get more overhead and marginal security/stability benefit

      You get more overhead and significant benefits.

      as a band-aid for not using a language that is at least a bit provable.

      Have fun looking down upon those ignorant fools from within your ivory tower, the rest of us have to live in the real world.

    53. Re:As a Developer the Question I Have Is ... by Endo13 · · Score: 1

      Anyway, the numbering we used is quite simple. The very first release of Windows was Windows 1.0, the second was Windows 2.0, the third Windows 3.0.

      Here's where things get a little more complicated. Following Windows 3.0 was Windows NT which was code versioned as Windows 3.1. Then came Windows 95, which was code versioned as Windows 4.0. Then, Windows 98, 98 SE and Windows Millennium each shipped as 4.0.1998, 4.10.2222, and 4.90.3000, respectively. So we're counting all 9x versions as being 4.0.

      Windows 2000 code was 5.0 and then we shipped Windows XP as 5.1, even though it was a major release we didn't' want to change code version numbers to maximize application compatibility.

      That brings us to Windows Vista, which is 6.0. So we see Windows 7 as our next logical significant release and 7th in the family of Windows releases.

      We learned a lot about using 5.1 for XP and how that helped developers with version checking for API compatibility. We also had the lesson reinforced when we applied the version number in the Windows Vista code as Windows 6.0-- that changing basic version numbers can cause application compatibility issues.

      So we decided to ship the Windows 7 code as Windows 6.1 - which is what you will see in the actual version of the product in cmd.exe or computer properties.

      http://windowsteamblog.com/blogs/windowsvista/archive/2008/10/14/why-7.aspx

      --
      There is no -1 Disagree mod. Slashdot.org/faq defines mod options. USE IT.
    54. Re:As a Developer the Question I Have Is ... by jdoverholt · · Score: 1
      Two separate product lines:
      • 95, 98, Me, (dead)
      • WinNT 3.51, 4, 5.0 (Win2k), 5.1 (WinXP), 6 (Vista), 7
    55. Re:As a Developer the Question I Have Is ... by Sir_Lewk · · Score: 1

      Real simple. Some applications just have absolutely no business being multicore capable.

      Take xterm for example, what possible benefits could be reaped? The only applications that really need to be multicore capable are the big bulky ones (office suites, games, web browsers, other random GUI stuff), the vast majority work perfectly well on one.

      Honestly though it kind of bugs me that webbrowsers suddenly need to use multiple cores when I distinctly remember using Firefox years ago on my 244MHz PII just fine. I've always favored minimalism though...

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    56. Re:As a Developer the Question I Have Is ... by buchner.johannes · · Score: 5, Funny

      )

      Sorry, I can't sleep if I know there is a bracket left open.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    57. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      If a thread eats atomic hot buffalo wings, all its brother threads in the same process get the same heartburn.

      But at least none of those brother threads can turn those hot buffalo wings into expired mayonnaise mid-bite!

    58. Re:As a Developer the Question I Have Is ... by RiotingPacifist · · Score: 1

      For something like a browser which is often prone to crashing on crappy plugins, it makes sense to aim for reliability.

      How would doing it at the browser level be better than at the plugin level (like nsplugginwrapper does)? I don't have a browser to test it on but i seam to remember that 32flash->32firefox took a pretty bad performance hit, would this still be the case?

      --
      IranAir Flight 655 never forget!
    59. Re:As a Developer the Question I Have Is ... by pdbaby · · Score: 1
      Because of my undergrad course, I learned very little form the grad course. Concurrency really isn't that advanced of a concept.

      Concurrency is a trivial concept. Coordination is where it gets tricky

      --
      Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
    60. Re:As a Developer the Question I Have Is ... by pdbaby · · Score: 1

      Hmm, and it turns out after all these years I've been using blockquote when I should have been using quote :-/ The first line in the parent is the quote & the second the reply

      --
      Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
    61. Re:As a Developer the Question I Have Is ... by pdbaby · · Score: 1

      Every mainstream programming language has facilities for multithread programming and there's no need to learn a new one just to do it.

      Yes, their libraries have the primitives for multithreaded programming but they generally lack the high-level abstractions to simplify concurrent programming - concurrency isn't a core part of the language

      --
      Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
    62. Re:As a Developer the Question I Have Is ... by nabsltd · · Score: 1

      Here's an overview of the courses I took that were required for my degree

      No required algorithms class?

      Well, that explains the current crop of programmers who think that memory and CPU are infinite resources.

    63. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 4, Funny

      Lisp programmer?

    64. Re:As a Developer the Question I Have Is ... by billcopc · · Score: 1

      That's part of the problem. Erlang's structure and concepts are not easily carried over to imperative languages.

      It probably doesn't help that most Erlang programs' performance is sorely disappointing. The interpreters and native code compilers are largely to blame for this, but it still makes Erlang unpalatable to most developers, in its current state. It's hard to coax people into learning it, if they can't immediately benefit from its use.

      --
      -Billco, Fnarg.com
    65. Re:As a Developer the Question I Have Is ... by Shikaku · · Score: 2, Funny

      His Lisp had a compile error.

    66. Re:As a Developer the Question I Have Is ... by jhol13 · · Score: 0

      There is one difference more: flushing cache(s)[1].
      And yet another one: "threads" in CPU core really require threads, processes won't do.

      I have never understood why shared memory between threads is "more fragile" than shared memory between processes, but that's just me.

      If you are only worried about loose pointers ... drop C/C++.

      I'd like the browser to be written in some more robust language than C++. Sure, processes help as long as the code is crap (which Fx is, proved by the amount of security holes. And the plugins, as you said).

      [1] This depends on the HW: is there any cache before MMU.

    67. Re:As a Developer the Question I Have Is ... by lpq · · Score: 1

      Apparently, have to use separate processes on *windows*, since AFAIK, threads on linux are implemented on processes and free to roam between processors. Why this isn't true on Windows, I dunno.

      Is NT fundamentally broken in not allowing threads to map to multiple processors?

      Seems rather sucky -- you can't jsut have multi-threaded apps, but must make multi-proc apps (just for windows?)...

      Anyone know for sure that linux doesn't keep multiple-threads of same process on 1 processor (unless deliberately asked). It seems like that may be what Windows is doing? Or maybe none of those threads are actually used for alternate tabs -- but for things like playing sounds or something?

    68. Re:As a Developer the Question I Have Is ... by Clarious · · Score: 1

      How will the computers in those "emerging markets" run Windows 7 anyway?

      None. Most people there will just pirate anyway. Well, MS still can make some cashes by pre-installed it in people computer.

    69. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      Some professors would dock us points for using inefficient algorithms, especially in the higher-level courses like Programming Languages, and OO. Of course, the C/Asm course also dealt quite a bit with the most efficient way to do things when you're working at the low-level.

      One example from the Java section of Programming Languages, despite being written in a high-level language: having a loop append to a String is very expensive, so using a StringBuilder is a much better practice.

      I'll also note that I took AI myself, but that was a CS Elective course.

      --
      Convert FLACs to a portable format with FlacSquisher
    70. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      I have never understood why shared memory between threads is "more fragile" than shared memory between processes, but that's just me.

      threads in a process share all of their memory, if something fails in one thread, every thread has a problem.
      shared memory between processes is usually a defined limited piece of memory shared by each,
      but that doesn't mean that one process has access to the rest of the other process.

    71. Re:As a Developer the Question I Have Is ... by johannesg · · Score: 2, Insightful

      For the most part we are not doing it because it is a totally useless activity. The vast majority of programs out there gets along fine with a single thread (or just a few threads for specific purposes). Adding more threads will not make them faster or better in any appreciable way.

      And thread creation / communication / synchronisation also has an overhead, and that overhead might very well add up to slower overal programs. Besides, if you are working and your computer just seems to stop for a second... That's most likely Windows paging your program in or out. No amount of threading will save you from that.

      I look forward to those 1024-core chips, but only because I want to see raytraced games. I do not want to see raytraced email, browse raytraced websites, or listen to raytraced mp3's. Those things already work just fine as it is.

    72. Re:As a Developer the Question I Have Is ... by grumbel · · Score: 1

      Take xterm for example, what possible benefits could be reaped?

      How about just being faster? You might not notice that your terminal is slow when you type in stuff, but when you have an app that produces large amounts of output, say a game printing debugging stuff, Wine producing warnings or something like strace it has quite a noticeable impact on the performance and things will go quite a lot faster when you redirect the output to a file instead of to the terminal.

      To really have the full benefit of multi-core, you simply need all applications to take advantage of it. I am kind of tired of having to wait for an app to finish while my computer is only utilizing 50% of the available computing power and that amount of underutilization will get much worse when we move to 32 cores or more a few years down the line.

    73. Re:As a Developer the Question I Have Is ... by Eivind · · Score: 1

      But it -is- worth it, well that or go to asynchrnous programming for more stuff.

      Because in actual fact, currently Firefox will frequently stall the entire user-interface, and ALL tabs, for the reason that ONE of the tabs is doing something where it's waiting for something-or-other.

      The result is, you've got 10 open tabs. One of them is waiting for java to initialize or something, and the result is that ALL the tabs, and indeed the entire application appears to hang, for 1-10 seconds.

      And that's just stupid. Especially stupid when there's 3 other cores in the machine doing nothing but idling.

    74. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      Processes can be made to share memory too, it's just a bit more work to set up, and you need to be explicit as to exactly what is being shared. (Which can be an advantage.)

      How does it work? Is it possible to share memory between processes without coping the data?

      Thank you

    75. Re:As a Developer the Question I Have Is ... by MrMr · · Score: 2, Interesting

      Yes really, I did a Minor in CS in 1988, and we had to write our own semaphore based threading code, on a bunch of 3b2's connected by 10base2.
      I'm pretty sure that was plain textbook stuff (from the first chapter of Tanenbaum's Operating Systems), as you would fail the grade if you didn't get it to work.

    76. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      Because it's difficult, time consuming, we do not have good tools yet and more importantly- current methods get the job done, get the product shipped.

      Using multicore is certainly a hot research topic, but change will take a good while to filter through.

    77. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      Or more likely you need more exposure to the world around you if you think that was funny.

    78. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      Not to sound like a M$ fanboy, but about the only thing they seem to get somewhat right: .NET (v4).

      It includes lightweight parallelization entities called "tasks", at least in C#...Then the programmer can do things like "Parallel.For(i=..." which really makes parallelization easy. It also uses a threadpool so that the number of .NET threads don't surpass the number of CPU cores.

    79. Re:As a Developer the Question I Have Is ... by Keeper+Of+Keys · · Score: 1

      Well, not all yet. Just IE8, Chrome and IIRC Safari 4. FF is just embarking on this road. Opera may already have started a project like this for all we know.

    80. Re:As a Developer the Question I Have Is ... by luserSPAZ · · Score: 1

      As for Firefox, you are basically running a series of stovepipes where it makes sense for each tab to have a separate process... why it has taken so freakin' long for this I don't know, but it's not a new idea

      Because it's a large existing codebase and will require invasive changes to work in this model. Also, multi-core processors are a fairly new development, having been around for only a few years. Do you think that back in 2000 anyone would have predicted consumer-grade quad-core CPUs? Would anyone have thought that building a multi-process architecture (ala Chrome) was the right course of action at that time? Software is hard, and retrofitting large codebases to do things they weren't designed for takes a lot of time and engineering effort.

    81. Re:As a Developer the Question I Have Is ... by loufoque · · Score: 1

      Plus the learning curve for functional languages is pretty high. Most programmers take a good bit of training to "get it", if they ever do

      Personally, I find the functional way very nice and elegant.
      Functional languages also have a number of interesting proprieties in terms of genericity, safety, etc.

      It's not especially harder than imperative, it's just a different vision. With proper studies for example it's not a problem. The problem is that from my experience, functional studies is mainly about theory such as lambda calculus classes, which non-theoricians are not that interested in.

      I have been programming in Erlang for about 5 years and even though I get it, I still prefer the "normal" programming languages like C/C++, Lua, Perl, whatever. I use functional tricks and I wish some of those imperative languages had more functional features but I think they work more like the human mind does and that helps me program better.

      My favourite language is personally C++, but I use functional techniques everyday, and that's often the way I recommend using that language.

      For adoption it's important to allow coexistence of the two paradigms. The problem is that languages that allow both, such as SML or OCaml, aren't that good at imperative.

    82. Re:As a Developer the Question I Have Is ... by loufoque · · Score: 1

      Having a kernel thread per task doesn't work really well. A kernel thread uses more memory than a task, limiting inherently the maximum number of threads you can have (the thread stack being a problem, especially since it's quite hard not to take arbitrary sizes). It might also not be desirable to schedule everything at the same level when there are a lot of threads.

      It is not useful to have more kernel threads than you have virtual processors (virtual processors being a generic term to address cores, hyperthreading, etc.) to benefit from hardware parallelization.

      That's why it is advised to have tasks that run on available threads from a thread pool, rather than having a thread per task.

      Another solution is N:M threading, with lightweight user-level threads, one for each task, spread across the finite number of kernel threads. That's what Erlang does, for example.
      It works even better if you put tasks with affinity together and build a tree of tasks, leading to hierarchic scheduling.

      Now, none of these give you protection against badly-written code that leaks or crashes.
      Only process-based designs can do it, which is like a kernel thread for every task but with additional memory usage, and that's quite an overhead.

      That's why people aren't doing it. Code should not leak or crash anyway, so that shouldn't be needed. Problem is, we can't really fix adobe flash without the source... But just putting flash in a separate process should be enough, I don't see any need to create a process per tab.

    83. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      The problem with parallel processing today is computer science.

      Over the decades, CS-ish concepts have been thought up and applied to concurrancy at the expence of the more "engineerish" concepts that were first used. For example:

      - Threads replacing processes. Processes model multiple computers - a very physical, engineerish solution. Threads model "execution paths", an abstract CS-ish construct.

      - Mutexes/semaphores etc replacing messages, pipes etc. The new concepts seem lower-level, and have an abstract purity for the CS researchers. But the old concepts had physical analogies that made understanding (and hence debugging) the concurrent architecture much easier.

      The big mistake with these CS-ish concpts is that they subtly favour timesharing a single processor over running on multiple processors in parallel. On a real parallel system, shared memory is slower because accesses must be arbited. We need to tell the CS types where to go. What they've been doing to concurrancy is akin to saying "We don't like "for" loops, they're too clunky and you might loop forever by accident. So now we've invented the far more elegant and succinct "goto"".

      We need to go back to stuff that matches the programmer's intent more directly. Stuff that fits in with the design issues in multi-core computers. It's about physicality. The single processor model/scheduler view favourd by CS types is a linguistic model. But if more than one person talks at a time, you get a din. In a physical system, all the parts can act at the same time. We attach them together, press play, and watch them move in poetic unison.

      So it must be about processes because they resemble a physical "lump" of processing. I'm not saying we kid ourselves we're always going to get a core to ourself - but when we contemplate what we're coding, we contemplate something physical - a lump of processing.

      It must be about pipes and queues. They express data flow along a physical path through space. A pipe has the physicality of a wire but with added handy synchronisation stuff. Queues potentially let you write locally and read locally, hiding the intermediate latency.

      And about messages and RPCs. Messages can be visualised as phisical lumps of data, travelling through queues from one process to another. RPCs clarify the idea that something "over here" is asking for something to happen "over there".

      Finally, and perhaps most importantly, it must be about locality. Physicality implies locality. Locality is both the first law and last word in modern physics. It limits the speed of computers - L1 is faster than L2 is faster than main memory, for example. Mutexes are not local, they must be global, so accessing them gets slower the more cores you have. Even when timesharing, it's easy to see how one could introduce locality to processes. Cache the mappings for multiple processes in MMU. Pass the current process ID into the L1 so it can uniquify its lines. Now the processes won't evict each other's stuff (can't do that with threads). By understanding processes as distant lumps of processing, we can see how to make them optimal in all scenarios; by cramming threads together, we constrain vital optimisations out of existance.

      Maybe CS types don't see distance because they are linguistical rather than spacial. Some say the programmer is God in a universe of their own invention - but if their invention has no spacial dimension then it is just a complicated dot, wherin omnipotence means nothing.

    84. Re:As a Developer the Question I Have Is ... by jhol13 · · Score: 1

      1. "If you are only worried about loose pointers ... drop C/C++."
      2. If the shared memory (& semaphores, etc.) between processes are corrupted, I can see only one way out: restart all the processes.

    85. Re:As a Developer the Question I Have Is ... by frieko · · Score: 1

      It's a vicious cycle really. You see, building a sexbot requires multithreaded programming..

    86. Re:As a Developer the Question I Have Is ... by Richard_at_work · · Score: 2, Informative

      Under Win32, threads can roam between processors, and you can also set thread affinity - http://msdn.microsoft.com/en-us/library/ms684251.aspx?ppud=4

    87. Re:As a Developer the Question I Have Is ... by Sir_Lewk · · Score: 1

      Don't be absurd, throwing more cores at trivial programs like xterm which are not, and never have been processor intensive is not going to solve anything. CPU is not a bottleneck for xterm unless maybe you're using a M68k or something. I could easily throw a few dozen instances of xterm onto a single processor without the slightest of performance hits, it's bottleneck is I/O.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    88. Re:As a Developer the Question I Have Is ... by Thaelon · · Score: 1

      I had one course in which threads came into play; it was in the course that introduced GUI work, so our GUI wouldn't freeze while a worker thread was running, but that is the area where single-threading is most apparent to the user, after all.

      Interestingly this is where Firefox failed.

      It's the textbook case for a reason, it's what will affect your users the most, therefore it matters the most.

      And yet Mozilla has utterly failed to take this into account. Which is why I'll happily drop like a bad habit as soon as Chrome supports adblock and flashblock. Xmarks, I'll find a way to live without.

      --

      Question everything

    89. Re:As a Developer the Question I Have Is ... by GooberToo · · Score: 1

      It looks like Python + Pyro will get you Erlang-like functionality, and then some - including remote execution.

    90. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      We had a CS course devoted to Concurrent Programming (the name of the course). This is basic level course and required as a part of the Bachelor's degree programme. The lecturer bascily said that one of the top-priortity objectives of today's Computer Science is to carry out the "Manhattan Project" of making all programs multi-threaded, and although we have seen progress, there is still a long and painful road to go. This requires some algorithimic redesign and some architectural redesign + more, and understanding the central concepts of multithreading is essential.

      The reason for this is because the development of silicon wafer chips have more and more reached their peak on single-core setups - they can't become much smaller, and thus they can't become much faster without very expensive cooling systems. Also, limits imposed by the laws of physics will be met, because electrons take space and the conductors really can not be arbitarily thin for predictable computation (unpredictable computation is like doing math with false assumptions). Next step, when talking about software effectiveness, is to make everything multi-threaded (divide the workload to smaller and smaller units/tasks), so that processors can start becoming "manycore". I believe, in the year 2016, we have 3+ GHz 16- and 32-core (or even more) processors as standard on the desktop, and servers are crunching 128-bit words.

    91. Re:As a Developer the Question I Have Is ... by cpghost · · Score: 1

      As chipmakers demo 64 or 128 core chips (...)

      Multiprocessing is difficult, because soon the number or cores will exceed the IQ of our most talented developers.

      --
      cpghost at Cordula's Web.
    92. Re:As a Developer the Question I Have Is ... by not+already+in+use · · Score: 1

      You seem to be confusing multi-threaded with multi-process. Erlang won't easily overcome the architectural challenges in creating a multi-process application. Yes, it is well suited for highly threaded apps, but these are two completely different beasts.

      --
      Similes are like metaphors
    93. Re:As a Developer the Question I Have Is ... by not+already+in+use · · Score: 1

      I can't believe I had to scroll through 1/4 of the comments before someone pointed out that multi-threaded != multi-process. Firefox is certainly, without a doubt, already multithreaded.

      --
      Similes are like metaphors
    94. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      Okay, I'm confused:

      was the highest-level course that's required of all CS majors

      Shortly followed by:

      that was only one semester after taking our "Intro to C and Assembly"

      No offense, but where did you go to school? I think I need to make sure I add that to the resume blacklist.

      Disclaimer: I'm not a crotchety old programmer either. Graduated in 2005.

    95. Re:As a Developer the Question I Have Is ... by hypnolizard · · Score: 1

      If you don't do it right the first time you will not be able to afford to redo it right the next time.

      --
      "Old bag" has more than one meaning.
    96. Re:As a Developer the Question I Have Is ... by grumbel · · Score: 1

      Read my post again, under certain circumstances xterm *is* processor intensive (or well, gnome-term to be exactly, don't use xterm) and its not IO, its drawing millions of anti-alised characters to a large screen, which is always slow in software.

    97. Re:As a Developer the Question I Have Is ... by X0563511 · · Score: 1

      That's what I just said. Memory is storage.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    98. Re:As a Developer the Question I Have Is ... by nabsltd · · Score: 1

      One example from the Java section of Programming Languages, despite being written in a high-level language: having a loop append to a String is very expensive, so using a StringBuilder is a much better practice.

      This is not an algorithm issue, but rather caused by Java's poor memory allocator performance. In both cases, the algorithm is O(n), as is all string concatenation. Java could have implemented all string concatenation by internally using the same tricks that the StringBuilder uses (large-block memory allocation, no creation of extra temporary objects, no freeing of memory until destruction of the StringBuilder, etc.), but they chose not to.

      An algorithms class would discuss things like why a balanced tree has better worst-case performance than a plain binary tree, and how to decide when to use each of them. Some algorithms classes (like the one I took) will get into how to improve performance without changing the base algorithm, but much of that sort of thing is very specific to the data you are working with.

    99. Re:As a Developer the Question I Have Is ... by Sir_Lewk · · Score: 1

      The obvious solution is to not render in software then. If software rendering is too slow then look into hardware rendering (which would be absurd overkill for a terminal emulator...). I suppose you could kind of consider that somewhat "multicore" in a way however I maintain that making xterm multicore would fail any reasonable cost/benefit analysis.

      (as an aside, as an ncurses geared roguelike developer I must say gnome-terminal is hardly up to stuff compared to xterm, why oh why can't gnome-terminal and konsole not render the Unicode Full Block character correctly? Also konsole's default 256 color palette is completely off...[/random_rant])

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    100. Re:As a Developer the Question I Have Is ... by Anonymous Coward · · Score: 0

      Semaphores can become quite expensive, though, and multi-process applications don't have to use them. I haven't compared them directly to IPC, so maybe they are way cheaper than that.

    101. Re:As a Developer the Question I Have Is ... by rgviza · · Score: 1

      Here are some things that are:
      Video editing (especially processing on large files, the client itself, not so much)
      3d rendering
      photo editing during filter application
      just about every video game in existence
      web servers
      application servers
      just about every science simulation/modeling application in existence
      DSP

      It's a decent sized chunk of the applications being used.

      --
      Don't kid yourself. It's the size of the regexp AND how you use it that counts.
    102. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      You're right, that's not really an algorithm issue on its face, but there's still a lot of performance consideration.

      This brings up a point from that "old language conventions" article a couple weeks ago; I've been writing so much code in high-level languages that the low-level stuff has been pushed to the back of my mind. I can just create a data structure and say "tree.sort()". :)

      I think in a high-level language all I have to really know is what the best data structure is for a given usage of the data, but I learned all that thanks to my school experience with lower-level languages.

      I may not have the QuickSort algorithm memorized, but if I needed to manually sort a data structure in a lower-level language, I'm decent enough of a programmer that I can take what I read from a book or online, and adapt it to the current situation.

      I made a bad example, but we did learn how to analyze algorithms, what Big-O notation is, and how to use the basic data structures efficiently (mostly in the Data Structures class, which is taught at the sophomore level).

      --
      Convert FLACs to a portable format with FlacSquisher
    103. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      Memory is a type of storage, essentially, but you're not using standard conventions for the vocabulary. Storage is permanent, like hard drives, tape drives, and optical disks.

      Saying that storage is a bottleneck, and including memory, is like saying that the "processor" is the bottleneck for pretty much all games today. If I correct you, saying that it's the GPU, you can try to argue that you're still right, since the GPU is a processor, but you're just confusing the issue.

      --
      Convert FLACs to a portable format with FlacSquisher
    104. Re:As a Developer the Question I Have Is ... by Haeleth · · Score: 1

      Unfortunately, most programmers view solving concurrency with pure functional programming in much the same light that the average guy on the street views solving differential equations with Fourier transforms. You may well be applying a technique that is well understood in academic circles, but from Joe Average's perspective, the solution is even harder to grasp than the problem was.

      You might argue that any programmer worthy of the name should be able to write side-effect-free code. I happen to agree with that position. But Sturgeon's Law tells us that most programmers aren't worthy of the name, and there's no simple solution to that. You can't just fire them all, tempting though the idea may sound.

    105. Re:As a Developer the Question I Have Is ... by slyfox · · Score: 1

      We do need something to make multiple-CPU programming easier though. Threaded programming in C/C++ or similar can turn into a nightmare real quick, it's error prone and complicated.

      If you want to use C++, I suggest Thread Building Blocks, which is an open-source C++ library. It is a set of reasonable primitives, including a task scheduler and some simple parallel iterators that create tasks. The task scheduling makes it mostly independent of the specific number of cores in the system, which is key. It think it is part of most Linux distributions these days. For simple data parallel computations, you can avoid thinking about threads and locks entirely, but yet it also allows provides the low-level primitives to write sophisticated highly optimized code, too.

      P.S. I totally agree that Erlang is just *not* the right solution for multicore. Erlang's message passing is great for the application for which it was designed (telecommunications equipment with multiple independent line cards and such) or any such highly concurrent applications with high availability needs. It just isn't well suited for multicore programming (which just has an entirely different set of challenges such as data locality).

    106. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      Don't blacklist anyone; just make your interview process more thorough.

      It doesn't matter if someone got their degree from MIT or the University of Pheonix; if they show you in the interview that they can actually design good software, hire them.

      --
      Convert FLACs to a portable format with FlacSquisher
    107. Re:As a Developer the Question I Have Is ... by X0563511 · · Score: 1

      I honestly think you are reading more into my post(s) than I wrote.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    108. Re:As a Developer the Question I Have Is ... by CajunArson · · Score: 1

      Yeah I've grown soft and Slashdot doesn't have syntax highlighting to point out my sloppy parenthesizing.

      --
      AntiFA: An abbreviation for Anti First Amendment.
    109. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      Can you explain what you meant? What I read was that you said memory performance was a part of the current storage bottleneck that we must overcome.

      If this isn't what you meant, can you explain further?

      --
      Convert FLACs to a portable format with FlacSquisher
    110. Re:As a Developer the Question I Have Is ... by X0563511 · · Score: 1

      That's exactly what I meant. I don't know where all the other stuff is coming into it?

      My definition of storage is where you put data when you are not processing it right now. Cache, memory, drives - all storage.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    111. Re:As a Developer the Question I Have Is ... by Chabo · · Score: 1

      From the Wikipedia article on computer data storage:

      In contemporary usage, memory usually refers to a form of semiconductor storage known as random access memory (RAM) and sometimes other forms of fast but temporary storage. Similarly, storage today more commonly refers to mass storage - optical discs, forms of magnetic storage like hard disks, and other types slower than RAM, but of a more permanent nature. Historically, memory and storage were respectively called primary storage and secondary storage.

      In the past, RAM might have been called "primary storage", but nowadays "storage" refers only to permanent solutions. Using historical terminology in conversation without context is a pretty easy way to confuse people. To me, your use of "storage" to include cache and RAM is similar to the use of the term "processor" to mean anything other than the CPU, without further context to clarify the word.

      --
      Convert FLACs to a portable format with FlacSquisher
  2. responsiveness by Lord+Ender · · Score: 5, Insightful

    I think the main benefit of such a system would be responsiveness. It is very unpleasant when one tab temporarily causes the entire browser window to become completely unresponsive--including the STOP button or the button to CLOSE the misbehaving tab. The UI should never freeze for any reason.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    1. Re:responsiveness by anss123 · · Score: 1

      The UI should never freeze for any reason.

      Sadly, IE8 still has this problem. Anyone know for Chrome?

    2. Re:responsiveness by Captain+Splendid · · Score: 1

      The UI should never freeze for any reason.

      Whoah. Somebody hasn't used a Windows OS in a while, I see...

      --
      Linux, you magnificent bastard, I read the fucking manual!
    3. Re:responsiveness by camperdave · · Score: 2, Funny

      It is very unpleasant when one tab temporarily causes the entire browser window to become completely unrespon...

      sive--including the STOP button or the button to CLO...

      SE the mi...

      sbehaving tab. The UI should never freeze for any reason.


      Hear! Hear! I don't recall any problems of this nature back on version 2.x of Firefox. And why does my bank's website think I'm running from a different computer every time there's a minor update to Firefox?

      --
      When our name is on the back of your car, we're behind you all the way!
    4. Re:responsiveness by Anonymous Coward · · Score: 0

      It doesn't. Chrome takes it a step furthur and uses a new proccess instead of threads for each tab. It's one of my favorite things about chrome... now if only it had firefox-like addons support.

    5. Re:responsiveness by Anonymous Coward · · Score: 2, Informative

      Um, IE8 does the exact same thing. It uses child processes to control groups of tabs by domain.

      Of course, IE8 was doing it since the first public beta, over 5 months before anyone knew about Chrome. The implementation in Chrome is a near carbon copy. Who is copying whom?

    6. Re:responsiveness by timeOday · · Score: 4, Insightful

      Multi-processing aside, I wish firefox had an option to NOT use any CPU (including scripts, plugins, etc) on tabs except the one visible. I do NOT want 30 different processes, all firefox tabs, using up all my cores just to run spam animations. Granted, I DO usually want tabs to at least download in the background, so maybe it's harder than it sounds.

    7. Re:responsiveness by Drinking+Bleach · · Score: 1

      The existence of MS Windows does not detract anything from his point. It only serves to demonstrate that Microsoft has not learned the lesson.

    8. Re:responsiveness by Drinking+Bleach · · Score: 1

      Probably because your user agent has changed, and they detect that.

    9. Re:responsiveness by Darkness404 · · Score: 1

      No one is copying anyone, its a general trend. When you have tabs finally introduced to all major browsers including IE, people are going to get used to them and start to like them even more, and not just us geeks but the general public. At the same time you get multi-core CPUs in newer computers save for budget models. So, you have the perfect scenario in which to isolate tabs into different threads/processes. Mix that in with the general trend towards dynamic HTML pages using obscene amounts of JavaScript (previously most were done in plugins like Flash and Java), and you have a need to do it.

      --
      Taxation is legalized theft, no more, no less.
    10. Re:responsiveness by RiotingPacifist · · Score: 1

      This can be achieved in threads, i really hate the idea of jumping to a one process per tab model when it doesn't offer the advantages being promised. If this is going to be done, it needs to be done for the security benefits and that requires OS/distro cooperation!

      Responsiveness / multicore use / tab crashing can all be done using threading
      Security is the only reason to use separate processes and IMO i don't want to take a per-tab performance hit when browsing slashdot/youtube/gay^H^H^Hporn/etc, per tab stuff should only come into play on HTTPS sites (along with protection from malicious(or simply exploited) extensions).

      --
      IranAir Flight 655 never forget!
    11. Re:responsiveness by Darkness404 · · Score: 3, Insightful

      Sure, but there are a lot of problems with that for the general public. For example, a lot of people (including me) fire up YouTube, Pandora, or other web-based music services in another tab then listen to the music and then browse in different tabs. I also usually open up Facebook in another tab, and like the fact that if I get a message it alerts me with a sound so I can go back to the tab.

      Sure, it would be useful as an option, but I think this is more add-on territory because of how little it would benefit most people.

      --
      Taxation is legalized theft, no more, no less.
    12. Re:responsiveness by coldmist · · Score: 2, Interesting

      If I look at a page like The Drudge Report, I can ctrl-click on 10 links, creating 10 background tabs. Then, I click on the first article tab, read a bit, close the tab. That shows me the 2nd article. Close it, and I get the 3rd. etc.

      This way, I don't have to wait more than 50ms to go from article to article. They are already loaded in the background for me.

      Very handy!

      Doesn't everyone do this?

      --
      Don't steal. The government hates competition.
    13. Re:responsiveness by Simetrical · · Score: 1

      The UI should never freeze for any reason.

      Sadly, IE8 still has this problem. Anyone know for Chrome?

      Chrome is designed so that no blocking operations whatsoever are allowed on the UI thread. In theory, therefore, the interface should never freeze up. Since Linux builds still tend to crash a lot, though, I haven't been able to give it a good workout personally.

      --
      MediaWiki developer, Total War Center sysadmin
    14. Re:responsiveness by Simetrical · · Score: 1

      Um, IE8 does the exact same thing. It uses child processes to control groups of tabs by domain.

      That doesn't mean it makes sure to avoid blocking on the interface tab. So in principle, the interface might still freeze up. (Since I use Firefox on Linux, I don't know, personally.)

      Of course, IE8 was doing it since the first public beta, over 5 months before anyone knew about Chrome. The implementation in Chrome is a near carbon copy. Who is copying whom?

      Neither is copying anything. You think Chrome wasn't already a working internal alpha with most of its design fixed (obviously including major structural issues like use of threads) by five months before its release?

      --
      MediaWiki developer, Total War Center sysadmin
    15. Re:responsiveness by Anonymous Coward · · Score: 0

      The UI should never freeze for any reason.

      Whoah. Somebody hasn't used a Windows OS in a while, I see...

      Or GNOME for that matter.

    16. Re:responsiveness by timeOday · · Score: 1

      Well, I did say just that - tabs should still download in the background. That shouldn't take substantial CPU. I can imagine a case where the browser doesn't know it's supposed to download something until (for instance) it runs some javascript that makes a link to a flash app - in that case it wouldn't finish background loading which would admittedly be bad.

    17. Re:responsiveness by steveha · · Score: 1

      I wish firefox had an option to NOT use any CPU (including scripts, plugins, etc) on tabs except the one visible.

      Yes, yes, yes!!! Please.

      Here's how it should work:

      User middle-clicks on a link, causing the page to load in a tab. Page loads to completion, then sits there, waiting for the tab to become the current tab. (Ideally, the initialization Javascript might be allowed to run... but then everyone will put all their annoying Javascript in the initialization part, and make it run at all times anyway.)

      In the UI somewhere, there is a control that lets you set this tab as an always-running tab. I imagine this as a sort of push-pin icon, but let's have a user-interface expert design that part, not me, please. User loads Pandora.com, and pins this to always be allowed to run.

      For extra credit: on startup, when restoring tabs, the tabs run serially, N at a time (where N is the number of cores on your system). If a power-user has four dozen tabs to open, instead of running all those threads at once, just run the current tab and load however many hidden tabs the user's system can actually keep up with. Firefox should draw the title bars so the user can tell which tab is which, and click on a particular tab to make it the current tab and make sure it is running right now. As the tabs finish loading, start loading the next tab, and continue until all the tabs are re-loaded; then settle down into the default mode.

      P.S. I run Ubuntu on an older computer. I also use NoScript in Firefox. I totally notice the difference between having a bunch of tabs loaded in Firefox, and having tabs loaded in Epiphany; the executing Javascript really does drag down performance. (The new fast Javascript engines will mitigate this but won't eliminate it.)

      steveha

      --
      lf(1): it's like ls(1) but sorts filenames by extension, tersely
    18. Re:responsiveness by electrosoccertux · · Score: 1

      Take a look into NoScript and Adblock for Firefox. Those two kill all processor-sucking advertisements. You can still enable the sites that need javascript.

    19. Re:responsiveness by Toonol · · Score: 1

      Hmm. I imagine a 'Stop' button next to the 'Close' button for each tab, perhaps. That would probably use up to much space, though... maybe allow a right-click on the close button?

      My preferred default behavior would be to have all rendering, animation, and scripting functions stop on all non-visible tabs, but not to suspend simple downloading of data. Having something like pandora playing in the background is rare enough (only done once per session), that I wouldn't mind having to right click and select a "execute while in background" option.

    20. Re:responsiveness by Magic5Ball · · Score: 1

      I like this idea a lot, but I also fear that somehow, the developers will find a way to increase memory usage to compensate, perhaps by having to remember the entire memory state of each paused tab or some such. I like and use Firefox, I just don't appreciate the condition that an otherwise naked v3 install with Adblock somehow chews up 4% of a 2 GHz CPU per static page open in a tab, even when the entire browser is in the background.

      --
      There are 1.1... kinds of people.
    21. Re:responsiveness by mR.bRiGhTsId3 · · Score: 1

      All I can say is Chrome did a better job. I've found that opening new tabs is instantanous in Chrome, while it takes up to a second in IE 8. That sluggishness is my only complaint about IE 8.

    22. Re:responsiveness by mR.bRiGhTsId3 · · Score: 1

      Ok? And what happens when you have multiple windows with interactive content that you want to access in tandem. Or just view one to provide input for another. Oh wait, you now have to switch focus back and forth instead of just arranging the windows on the screen.
      It annoys me that flash and scripts are so obnoxious, but wouldn't it be easier to just close the offending tabs and then use the recently closed tabs list to reopen them?

    23. Re:responsiveness by antdude · · Score: 1

      What if we have to wait for a download, buffering, etc. in other tabs?

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    24. Re:responsiveness by Darkness404 · · Score: 1

      My preferred default behavior would be to have all rendering, animation, and scripting functions stop on all non-visible tabs, but not to suspend simple downloading of data.

      But that really wouldn't work for everyone else, Most of the people that I know listen to music, have web-based IM, listen to a video or have some other script-based thing on their non-active tabs. Thats one of the main reasons why people use tabs to browse. And making that being a default option would kinda defeat the purpose.

      Having something like pandora playing in the background is rare enough (only done once per session), that I wouldn't mind having to right click and select a "execute while in background" option.

      Yes, but a lot of people have different things open that I can't see this working without a bunch of complaints that it is broken. I see your point, and I can see how it might work for you, but I can't see it working for most other people, Flash and JavaScript in tabs are just too valuable.

      I'm not against an option, or an add-on for this, I just can't see it being a mainstream feature that most of the public would want.

      --
      Taxation is legalized theft, no more, no less.
    25. Re:responsiveness by pcgabe · · Score: 1

      [...] the developers will find a way to increase memory usage to compensate, perhaps by having to remember the entire memory state of each paused tab or some such.

      As opposed to the current system where running tabs DON'T remember the entire memory state?

      I'm not sure what variable types you're thinking of, but this seems to simply be the difference between executing the next instruction or waiting at the current position. Neither affects memory.

      A possible way to implement something akin to this, if tabs did run in separate processes, would be to idle the processes that aren't the active tab. They'd still run, if necessary, but it would be at a lower priority than any normal process (including the active tab).

      --
      Don't put advice in your sig.
    26. Re:responsiveness by Randle_Revar · · Score: 1

      no, no one else reads Drudge

    27. Re:responsiveness by ppanon · · Score: 1

      Or more likely, he's suppressing some cookie. The bank looks for the cookie, can't find it and thinks "Aha! New computer!". It then proceeds (after failing to create the cookie for the next time) to associate the data/state it needs with the HTTPS connection on the server side.

      --
      Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
    28. Re:responsiveness by Anonymous Coward · · Score: 0

      Sure, it would be useful as an option, but I think this is more add-on territory because of how little it would benefit most people.

      Unless your add-on patches the source code and recompiles, I really doubt that sort of functionality is going to be accessible...

    29. Re:responsiveness by jhol13 · · Score: 1

      I do NOT want 30 different processes, all firefox tabs, using up all my cores just to run spam animations.

      I do. I really, really DO.

      Rather than have just one core being slowed down to a crawl making *ME* wait.

      Bloody, hell that's why I bought dual core!

    30. Re:responsiveness by bcrowell · · Score: 1

      think the main benefit of such a system would be responsiveness. It is very unpleasant when one tab temporarily causes the entire browser window to become completely unresponsive--including the STOP button or the button to CLOSE the misbehaving tab. The UI should never freeze for any reason.

      That never used to happen to me when I used NoScript. Then a few days ago I uninstalled NoScript because of the recent news about its malware-type behavior. Eesh, now my browser is becoming unresponsive all the time. The solution isn't to dedicate 128 cores to executing 128 javascript-based ads simultaneously. The solution is for someone (someone trustworthy) to fork or replace NoScript.

    31. Re:responsiveness by drinkypoo · · Score: 1

      It seems like if you could split noscript's workaround functionality off into a website, then you could have a relatively simple greasemonkey script (or for that matter, script for opera) to implement noscript's functionality.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    32. Re:responsiveness by temcat · · Score: 1

      Chrome is great! Switched from Firefox to Chrome 2.0 recently and no regrets whatsoever. I don't even miss any Firefox extension. The speed and reliability are stunning - wow, I can now launch my browser in a second, its UI doesn't freeze because of a misbehaving tab anymore, and making suggestions when typing in the address bar don't slow it down to crawl! Also, very nice, inobtrusive download management interface. All in all - just great.

    33. Re:responsiveness by Anonymous Coward · · Score: 0

      My UI never froze on Windows, so I guess you haven't either.

    34. Re:responsiveness by WuphonsReach · · Score: 1

      It will definitely help with responsiveness. That is currently my biggest gripe with Firefox, where if I leave other windows open in the background, the content on those pages can steal CPU cycles. (Even with Flashblock and NoScript.) The "abouttime" tag is very accurate. The question is whether it's a day late and a dollar short at this point. I've given serious thought to switching to Chrome.

      --
      Wolde you bothe eate your cake, and have your cake?
    35. Re:responsiveness by WuphonsReach · · Score: 1

      Lots of us *try* to do that with Firefox.

      At least, until Firefox decides to stop responding as it spins its internal wheels.

      Which pretty much makes "load in background" useless for its intended purpose.

      --
      Wolde you bothe eate your cake, and have your cake?
    36. Re:responsiveness by Anonymous Coward · · Score: 0

      I do NOT want 30 different processes, all firefox tabs, using up all my cores just to run spam animations.

      No one would implement multiple processes it that way. Google chrome for example uses "Process-per-site-instance" model Chromium process models

    37. Re:responsiveness by Magic5Ball · · Score: 1

      Having worked with related requirements before, I've encountered some awful "remembering" implementations where timers, network and other things that go weird if they don't regularly interact. Such implementations cn force really bad things to happen with dirty pages and apparent and actual memory usage. With all the embedded javascript-based DHTML, Flash, Java and other fun plugins and add-ons that walk all over memory and/or assume statefulness in the browser, the developers would almost need to do virtualisation of browser document instances in order to not frequently break pages when resuming, and/or risk relying on some ugly stuff to deal with cohesion.

      Tabs in separate processes would reduce the active memory footprint and would be a good way to let the OS decide how to use multiple "cores" and memory, but individual tabs would be more liable to be paged out and back in under a significant number of the common installation/use scenarios.

      Given Firefox routinely consumes 4-20 MB for every 1% of CPU it uses (on well memoried and processored systems; per page memory usage has increased steadily for 10 years now in FireFox, even on static pages), I'm confident that the faster/elegant implementation options will lose to portability, but I don't yet know how they'll manage to make it go sideways.

      --
      There are 1.1... kinds of people.
    38. Re:responsiveness by Valdrax · · Score: 1

      Hear! Hear! I don't recall any problems of this nature back on version 2.x of Firefox.

      I am so glad to hear that I'm not the only one who has this problem. Ever since I moved to 3.0, the damn browser just seizes up for a few seconds every now and then, like it's got an important date with your page file and doesn't want to be disturbed by petty "users." I've just been futilely hoping each time I get an update that the *next* one will fix the issue.

      --
      If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
  3. Finally! by nausea_malvarma · · Score: 5, Interesting
    About time, mozilla. I've used firefox since it came out, and lately I've noticed it's not the hot-rod it once was. The web is changing - full of in-browser videos, web apps, and other resource intensive content, and firefox has had trouble catching up. I look forward to better speed and stability, assuming this project is seen through it's completion.

    Otherwise, I'd probably switch to google chrome eventually, which doesn't have the add-on support I enjoy from firefox.

    1. Re:Finally! by eldavojohn · · Score: 1

      The web is changing ...

      This is about hardware changing, not the web. If the CPU manufacturers were still concentrating on X Ghz chips instead of Y core chips, Mozilla wouldn't be doing this. Intel and AMD have spoken and the software world better pay attention.

      Mozilla is interested in providing a better user experience and they're correct in taking full advantage of your hardware. As multicore chips become cheaper and cheaper to fabricate and they show up in netbooks with low frequencies, this is going to pay off big time.

      --
      My work here is dung.
    2. Re:Finally! by ShadowRangerRIT · · Score: 1, Flamebait

      The web is changing - full of in-browser videos, web apps, and other resource intensive content, and firefox has had trouble catching up.

      Of course, with add-ons to Firefox like Adblock Plus, FlashBlock and NoScript, all that crap becomes Opt-In. Aside from occasional problems with the Java plugin (which I need for a specific site), I've never felt that Firefox was slowing me down. Chrome felt slower despite handling JavaScript faster, because it had to run the JavaScript, period.

      --
      $_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
    3. Re:Finally! by Captain+Splendid · · Score: 1

      and lately I've noticed it's not the hot-rod it once was.

      And it doesn't crash like it used to back in the early 1.x days. Sure, it's a little bloated, but I'll happily compare my FF uptime stats with at least Windows Server.

      --
      Linux, you magnificent bastard, I read the fucking manual!
    4. Re:Finally! by RiotingPacifist · · Score: 1

      Try out minefield, its pretty fast and rarely crashes on me (literally twice in ~6 months of running it), rendering is fast, startup time is pretty good and generally firefox 3.5 is the fasted browser I've seen (granted im on Linux but it compares favorably to chrome on my friends windows box, and the Linux version does even have PGO yet)

      Changing to a multiprocessor system is going to mean a performance hit and only provides a marginal security benefit, Firefox's main security hazard are its extensions, ofc if they get a similar lock down and UAC/SElinx/apparmor or something similar can prevent them from messing with https rendering (or each other as was recently a problem with noscript+adblock) then it's worth it.

      --
      IranAir Flight 655 never forget!
    5. Re:Finally! by Grishnakh · · Score: 1

      This is about hardware changing, not the web. If the CPU manufacturers were still concentrating on X Ghz chips instead of Y core chips, Mozilla wouldn't be doing this. Intel and AMD have spoken and the software world better pay attention.

      Not quite correct.

      The laws of physics have spoken, and caused Intel and AMD to change their focus from clockspeed/GHz to multicore. The software world better either pay attention, or figure out a way on their own to get single-core CPUs to run at 20 GHz without needing liquid sodium cooling.

    6. Re:Finally! by marcansoft · · Score: 1

      Sodium melts at 98C. I somehow doubt your CPU is going to be very happy.

    7. Re:Finally! by Grishnakh · · Score: 1

      Liquid sodium is used for cooling nuclear power plants. Here's an old Slashdot article about liquid metal cooling for a CPU.

      My point was, if you ran a processor at 30 GHz or whatever, it would produce so much heat that you couldn't cool it very easily. Realistically, you'd probably need liquid nitrogen, so I probably should have used that in my quip.

  4. Relief by elashish14 · · Score: 2, Insightful

    This is great. I'm sick of that stupid integrated PDF viewer made by Adobe that always crashes my whole browser. Now it'll just crash a tiny bit.

    --
    I have left slashdot and am now on Soylent News. FUCK YOU DICE.
    1. Re:Relief by A+beautiful+mind · · Score: 1

      So why are you still using it then? Why can't you use kpdf or document viewer that is built into Gnome?

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    2. Re:Relief by Velorium · · Score: 1

      Because not all of us run Linux and this still affects average users that are the lemmings who give the most market share. Mozilla doesn't want to be blamed for the whole browser crashing when it's really Adobe's fault and yet Microsoft and Google have precautions to avoid a full crash. When the competitor has something you don't that allows for a smoother user experience, the users are more likely to stray away from your more rigid product.

    3. Re:Relief by mako1138 · · Score: 1

      You can set Firefox to open PDFs externally instead of using the plugin. Options -> Applications.

      That's what I did until last week, when I switched to Sumatra.

    4. Re:Relief by Grishnakh · · Score: 1

      Don't forget us poor bastards that are forced to use Windoze at work. We're not lemmings, just not in a position to force our companies to switch. Thanks to stupid Outlook and Office, even at past jobs where I used Linux, I still had to use Windoze for my email and office crap (and also web browsing), and only used Linux through VNC.

    5. Re:Relief by spanky+the+monk · · Score: 1

      Jeez man, just configure firefox to open pdf with an external program. Integrated PDF in web browsers is just dumb from a software design point of view because it leads to precisely the problem you describe; the web browser is not a PDF viewer. There is specialised software for just that. -1 Pointless integration.

    6. Re:Relief by Iguanadon · · Score: 3, Informative

      Tools->Options->Applications. Search for 'pdf' and disable it from using the plugin to auto downloading and opening the file.

      I also recommend using Foxit Reader instead of Acrobat for viewing PDFs, it too has a in browser plugin, but downloading and opening the application is quicker at least for me; the actual application usually opens in less than a second.

      But back on topic, I have been using chrome more and more lately due to the fact that no tab can crash the entire browser. I still use Firefox though due to the plugins and the web developer toolbar with firebug (chrome's inspector is pretty close though). If Firefox doesn't catch up quick enough I might switch over completely when chrome has more advanced plugin support.

    7. Re:Relief by anonymousNR · · Score: 0

      get rid of adobe reader, F-secure says its not secure.

      --
      -- It is the mark of an educated mind to be able to entertain a thought without accepting it. -- Aristotle
    8. Re:Relief by digitalchinky · · Score: 1

      For me the reason is because these alternatives, like kpdf and others, are a little bit flawed. Sure they are fast, they can render the text and images ok, but transparency, layers, masks, and so on, they are a little bit lacking in these areas. Not so good in the publishing world. As bloated and as frustrating as adobe's new stuff is, it is where everyone is at, so it's what I use for the most part.

    9. Re:Relief by Randle_Revar · · Score: 1

      evince. and kpdf is dead, long live Okular!

    10. Re:Relief by Anonymous Coward · · Score: 0

      What is Windoze? Is it a term idiots use for Windows?

  5. So here's the $10,000 question... by MoOsEb0y · · Score: 2, Insightful

    Does the process separation prevent badly-behaved plugins needed for a good portion of websites in existence these days *cough*flash*cough*acrobat*cough* from killing your browser when they inevitably decide to break? Both plugins have been killing me on both win32 and linux. Noscript and mozplugger or foxit help to some degree, but firefox is by far the most unstable program I use these days because of plugins.

    1. Re:So here's the $10,000 question... by RiotingPacifist · · Score: 1

      it depends how its done, but the performance hit in the past has been pretty bad. This is how nspluginwrapper works and apparently running 32bit flash on a 32bit system still took a noticeable performance hit. IMO it's better to just do this in threads but keep a close eye on the plugin threads.

      --
      IranAir Flight 655 never forget!
    2. Re:So here's the $10,000 question... by Chirs · · Score: 1

      This is actually what I see as the real benefit of doing this work. Done properly (using shared memory, interprocess mutexes, etc.), the performance hit should be minimal.

    3. Re:So here's the $10,000 question... by BZ · · Score: 1

      Putting plug-ins out of process is actually simpler than what this article is about, and is being targeted for much sooner. And yes, that would help with the problem you're seeing.

  6. How about threads? by node159 · · Score: 2, Interesting

    Processes vs Threads...

    I'm pretty certain that the usual 40-60 pages I have open are going to blow the memory if each runs in its own process.

    --
    GPLv2: I want my rights, I want my phone call! DRM: What use is a phone call, if you are unable to speak?
    1. Re:How about threads? by mishehu · · Score: 2, Informative

      And I thought that Firefox was already multithreaded, and thus already multi-processor supported... this would just simply be a different approach to the same scenario - how to split up the tasks over multiple cpus...

      or am I wrong about it being multithreaded?

    2. Re:How about threads? by TheRaven64 · · Score: 3, Interesting
      No. Just no.

      On any modern system, there is very little memory overhead to having multiple copies of the same process. They will share read-only or copy-on-write versions of the executable code and resources loaded from shared libraries and the the program binary, as well as any resource files opened with mmap() or the Windows equivalent. The only real overhead is relocation symbols, which are a tiny fraction of most processes. In exchange for this small overhead, you have the huge benefit of having completely isolated instances which only communicate with each other through well-defined interfaces.

      Threads are an implementation trick. They should not be exposed as a programmer abstraction unless you want people to write terrible code. Go and learn Erlang for how parallel code should be written.

      --
      I am TheRaven on Soylent News
    3. Re:How about threads? by nxtw · · Score: 2, Informative

      Do mods know nothing abuot modern operating systems?

      A properly implemented application using a multi-process model should use only slightly more memory, thanks to shared memory, a feature of any modern operating system.

    4. Re:How about threads? by dltaylor · · Score: 2, Informative

      If it is threads, then the common parts are sharing literally the same memory, although you do pay for some locks.

      If processes, which would be more robust, then the common parts should be in .so/.dll to share the code (common data could be in library-allocated memory, but cleanup is tricky on M$-Windows), and per-instance data is part of the process, which, when a window (tab, too, I suppose, but I don't use them) is closed, would free the memory. Reducing the amount of common storage to simplify its management and having each instance's data in its own space would actually help in Firefox' case, since they currently don't do that very well.

    5. Re:How about threads? by Anonymous Coward · · Score: 0

      This is an honest question, and I don't mean to insult you in any way, but why in the name of fuck do you have 40-60 pages open at a time? I think you're doing it wrong.

    6. Re:How about threads? by RiotingPacifist · · Score: 3, Interesting

      I tried explaining this on DIGG, but to not have the title understand it on Slashdot is depressing!
      I think there is an advantage to processes pre tab against a code injection attack
      Also if you had Firefox-gui, Firefox-net, Firefox-Gecko, Firefox-Profile, Firefox-file you could give each one a different SElinux/apparmor/UAC profile.

      Im not sure what the performance trade off would be like so i sincerely hope that there is a single binary compiler option. I also think that a good balance to prevent the security hit on per-tab processes is to only put https tabs in separate processes (additionally it would be smart to prevent extensions running on these pages (GUI extensions would still work, but nothing that touched the page).

      Are processes even needed for security though? can threads be locked down to achieve this without the performance hit? (and additionally, lock down extensions?)

      --
      IranAir Flight 655 never forget!
    7. Re:How about threads? by jd · · Score: 1

      You think that's bad? A friend of mine routinely runs 400+ tabs. (She is forced to use Firefox 1.x as nothing newer is capable of handling this kind of number.) Can you imagine the resource hit that would take by using processes?

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    8. Re:How about threads? by Pentium100 · · Score: 1

      I'm the same way. This usually happens for me when I am reading some long text with a lot of links in it. I see a link, open it in a background tab and continue reading...

      Also, I usually keep a lot of tabs open to the sites I frequently visit, so I just select the tab and refresh the page to see if the site (a forum or /. main page) changed. On some sites I do not need to refresh, since they refresh automatically.

      Yes, I know, I should use bookmarks, but maybe it's just a bad habit, but a lot of tabs is easier for me. So, if the new FF version has a process for each tab, my Task Manager list will be full of firefox.exe (now if Opera does this too, it will be bad).

    9. Re:How about threads? by jokermatt999 · · Score: 1

      RSS readers. I scroll through the list and middle click the items that look interesting. I routinely wind up with 40, and occasionally have up to 60.

    10. Re:How about threads? by Anonymous Coward · · Score: 0

      Do mods know nothing abuot modern operating systems?

      Web 2.0 man. Everyone's a mod. Same group of uninformed people that post crap also happen to get mod points.

      What about you? Do you know nothing abuot the preview button?

      A properly implemented application using a multi-process model should use only slightly more memory, thanks to shared memory, a feature of any modern operating system.

      See now what we needs here is line item mod points. This is good, but the first line sucked.

    11. Re:How about threads? by mR.bRiGhTsId3 · · Score: 1

      Why? if its done properly, the bulk of gecko code will be shared between rendering processes. Everything else you would need a copy of anyway because it is page specific. And whatever passes for the actual process handle can't possibly be that big.

    12. Re:How about threads? by mikael · · Score: 1

      Each core has its own cache. Intel CPU's have cache pages based on 128 byte boundaries (cache page lines), and so any application has to ensure that the data shared between threads is protected by some suitable mechanism (mutexes) and is also padded to a suitable length. Fail to do this, and any algorithm that is multi-threaded becomes a multi-threaded random number generator.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    13. Re:How about threads? by Randle_Revar · · Score: 1

      >Firefox-gui, ... Firefox-Gecko

      Presumably the chrome would be rendered by a process that would look much like the processes that render the contents of the tabs

      >Firefox-net,

      you mean Necko

      >Firefox-Profile, Firefox-file

      I think that those might be the same.

      And I don't know if all that would help security all that much. Security on web is pretty fundamentally broken, to fix it would require massive breakage of the current web.

    14. Re:How about threads? by Anonymous Coward · · Score: 1, Insightful

      What a load of cr*p.

      Sure, on any modern system, the overhead of having "multiple copies of the same process" is minimal.

      That doesn't change the fact that:
      - synchronization between threads or processes is just as difficult either way. A mutex is a mutex, a semaphore a semaphore and so on.
      - communication, on the other hand is much easier with threads. And just because you're using threads doesn't somehow forbid you to use "well-defined interfaces". Other things being equal, you might want to save yourself the whole copy stuff to shared memory and back mess. Remember that extra code is an extra source of bugs.

      Where process have an advantage, still, is when you're running arbitrary code in one. Plugins for instance. That has the potential to crash the whole thing in a single process, while a *correctly coded* IPC can survive it. Emphasis on correctly coded because otherwise you'll end up with a lockup instead of a crash, not exactly an improvement.

      Since we're talking about plugins, I'd favor processes in this specific case.

      But that's not to say that processes are inherently superior to threads. They're only so in the mind of people who grew up with Unix, decided that OS architecture reached perfection in the 70s and shut their mind about threads because that was "new" and/or something Windows better at. Pitiful.

      As for Erlang, I'm still waiting for an halfway decent app written in it that's used by more than 10 people. And that doesn't include that stupid router we keep hearing about: developers who can't code 6 nines of reliability out of 10 years matured specs running on custom telco-spec hardware don't deserve the title, be it in C, C++, Java or Erlang.

    15. Re:How about threads? by Randle_Revar · · Score: 1

      >She is forced to use Firefox 1.x as nothing newer is capable of handling this kind of number.

      pics and crash reports or it didn't happen.

    16. Re:How about threads? by BZ · · Score: 1

      > can threads be locked down to achieve this

      No, because the shared memory model of threads means that if a thread is exploited and writes to memory that a "higher privilege" thread then reads, you lose.

  7. I guess it can be useful in... by MoFoQ · · Score: 3, Interesting

    I guess it can be useful in determining which site I visit tends to create the memory leaks I still experience (even with ff3).
    (as I type, this current browser session has ballooned to over 600MB...which is still better than my typical with ff2...which was 700-800MB)

    maybe they can dedicate a process just for "garbage collection".

  8. Catchy Name by tmmagee · · Score: 5, Funny

    How about FireFork?

    1. Re:Catchy Name by Improv · · Score: 4, Funny

      I'd mod this up if I had the points. Flames behind a fork would look really stylish... although now you've got me thinking of Fondue...

      --
      For every problem, there is at least one solution that is simple, neat, and wrong.
    2. Re:Catchy Name by Anonymous Coward · · Score: 0

      Satan's favorite browser!

    3. Re:Catchy Name by MBCook · · Score: 1

      How about Miles Prower?

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    4. Re:Catchy Name by Anonymous Coward · · Score: 0

      mool-ti-fox.

    5. Re:Catchy Name by Beat+The+Odds · · Score: 1

      I'd mod this up if I had the points. Flames behind a fork would look really stylish... although now you've got me thinking of Fondue...

      Let's go with it.... FondueFox.... got a nice ring to it....

    6. Re:Catchy Name by ProfessionalCookie · · Score: 1

      Call it "Internet" and lay people will actually use it ;)

    7. Re:Catchy Name by mutube · · Score: 2, Insightful

      Following the link on that page Kitsune the Japanese word for fox, particularly in folklore. "The more tails a kitsune hasâ"they may have as many as nineâ"the older, wiser, and more powerful it is"

    8. Re:Catchy Name by can56 · · Score: 3, Funny

      Flames, Forks, and Fondue makes me think of Hell's Kitchen and Gordon Ramseys logo.

    9. Re:Catchy Name by syousef · · Score: 1

      How about FireFork?Z

      What's wrong with ForkFox or better yet ForkerFox? Much more accurate given what some people choose to browse.

      --
      These posts express my own personal views, not those of my employer
    10. Re:Catchy Name by guyminuslife · · Score: 1

      For some reason, whenever I open a tab, it says it's this "IceWeasel" thing.

      --
      I don't believe in time. It's a grand conspiracy designed to sell watches.
    11. Re:Catchy Name by Dr+La · · Score: 1

      Or "split personality"?

      --
      Ceterum censeo Carthaginem delendam esse
    12. Re:Catchy Name by Taibhsear · · Score: 1

      Flames and forks reminds me of the devil... and a Maserati... which one of the devil's sons drives in Reaper. Mozilla FireFork, tool of the devil.

  9. A simple implementation by Anonymous Coward · · Score: 1, Interesting

    Now, this sample browser with process isolation took a couple of hours to develop:

    http://ivan.fomentgroup.org/blog/2009/03/29/instant-chrome/

  10. Feature was not "badly" needed by bogaboga · · Score: 0, Flamebait

    Like Chrome or Internet Explorer 8 which have implemented this behavior to some degree, the main benefit would be the increase of stability: a single tab crash would not take down the whole session with it, as well as performance improvements in multiprocessor systems that are progressively becoming the norm.

    While I believe this feature would improve Firefox in a big way, I also believe it was not badly needed at present because I have found Firefox to be pretty stable on all systems I have used it.

    What I would have wanted to see is implementation of uniformity across all platforms especially Windows and Linux. Its user experience on Linux is still wanting from configuration options in unfamiliar places to that "old weird look and feel" one gets on the Linux platform.

    Since QT 4.5 is not LGPL...how about re-creating its interface using QT like folks at VideoLan did. This would go a great way in improving the user experience.

    I guess such a move would break compatibility with the thousands of extensions now available for Firefox, but folks, we must move on from time to time.

    Am I wrong and unrealistic?

    1. Re:Feature was not "badly" needed by Burkin · · Score: 1

      Since QT 4.5 is not LGPL...how about re-creating its interface using QT like folks at VideoLan did. This would go a great way in improving the user experience.

      Welcome to last year. http://arstechnica.com/open-source/news/2008/08/nokia-helps-port-firefox-to-qt.ars

    2. Re:Feature was not "badly" needed by RiotingPacifist · · Score: 1

      Any news since then, I've not played around much with my system because of exams but, last time i looked the QT port had once again died! This isn't the first time this has been tried/failed either :(

      --
      IranAir Flight 655 never forget!
    3. Re:Feature was not "badly" needed by zlogic · · Score: 1
    4. Re:Feature was not "badly" needed by mR.bRiGhTsId3 · · Score: 1

      And what possible benefit would changing the XUL backend bring when there are already Qt or Gtk themes that immitate the other. Seems like a waste of time for little gain when most of the graphics action going on in firefox is going to be on the page.

  11. The problem is not threads vs processes... by faragon · · Score: 3, Insightful

    ... is to surrender in order to accept buggy as hell plug-ins or memory leaks as "acceptable".

    Current multithreaded Firefox is able to use multiple CPUs, being the reason of splitting the tabs into independent processes is to surrender to mediocrity. How about increasing Q&A, do proper synchronization between components, and don't allow untested components to be used without showing a big warning at installation?

    1. Re:The problem is not threads vs processes... by MBCook · · Score: 4, Insightful

      Until Mozilla has control over Flash, most internet uses will have to put up with buggy plugins. This is about being defensive instead of just getting shot.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    2. Re:The problem is not threads vs processes... by danhs7 · · Score: 1

      This seems like a silly argument.

      Why would you not want to make a more robust browser? You have to first accept that the application will never be perfect, will always have *something* wrong. Then it's an easy decision to choose to build a robust browser which can fail elegantly and minimize the effects of flaws.

    3. Re:The problem is not threads vs processes... by acidrainx · · Score: 1

      I don't remember the last time Flash crashed my browser. Poorly written JavaScript takes down Firefox far more frequently for me.

      The only thing that really gives me grief is Adobe Reader, but that's easily fixable by using the PDF Download add-on for Firefox or using a different PDF reader, like Foxit.

    4. Re:The problem is not threads vs processes... by entgod · · Score: 3, Insightful

      But why should flash crashing take down all of firefox? Why couldn't we just encapsulate flash in it's own process or something?

    5. Re:The problem is not threads vs processes... by Edgewize · · Score: 2, Insightful

      What, you mean like ActiveX and code signing? Anything goes, as long as the user knows it's dangerous?

      The era of "trust the user to make intelligent decisions" is long gone. I would argue that it never really existed in the first place. Computers are for people who don't want to know how the computer works. They don't want to see Big Scary Dialog Boxes where they have to make the Right Choice or else their system could be compromised.

      The onus is on application developers to minimize the frequency of scary choices, and to mitigate the impact of a wrong choice as much as possible.

      There will always be malware that wants to install itself, websites that spread misinformed "security" tips, scammers who trick people into making wrong choices. And of course there will always be buggy or exploitable code.

      Increased testing is useful. Increased architectural safety is MORE useful.

    6. Re:The problem is not threads vs processes... by et764 · · Score: 1

      Maybe my sarcasm detector failed miserably, but isn't the point of a multiprocess Firefox so that you can encapsulate Flash in its own process?

    7. Re:The problem is not threads vs processes... by Anonymous Coward · · Score: 0

      But why should flash crashing take down all of firefox? Why couldn't we just encapsulate flash in it's own process or something?

      Because nuking it from orbit is the only way to be sure.

    8. Re:The problem is not threads vs processes... by Anonymous Coward · · Score: 0

      But why should flash crashing take down all of firefox? Why couldn't we just encapsulate flash in it's own process or something?

      The only real reason to encapsulate Flash is to dispose of it without getting our hands dirty.

    9. Re:The problem is not threads vs processes... by Randle_Revar · · Score: 1

      It could be done, and I think it has in at least one browser. But it is very hard.

    10. Re:The problem is not threads vs processes... by BZ · · Score: 1

      That's being done too. It's a shorter-term project than what this article is about.

      That said, there are some issues with doing it, especially on Mac (apparently getting one processor to paint into another process's window is rocket science there).

    11. Re:The problem is not threads vs processes... by BZ · · Score: 1

      Firefox rendering is currently single-threaded. There are threads that are used for network access and some other things like that, but all the layout and painting happens on one thread.

      Splitting it to happen on multiple threads is not that much less work than splitting it to happen in multiple processes, and the latter has certain stability and security benefits (e.g. _if_ there is a bug that allows a renderer process to be exploited that need not automatically mean a local user exploit). It also allows memory leaks to be controlled better. Yes, fixing the leaks is still important, but we can't fix the leaks in plug-ins (which is why those are moving into separate processes too) or third-party libraries (including the OS ones used for text measurement, say).

      So this is more defense in depth than "surrender".

    12. Re:The problem is not threads vs processes... by Anonymous Coward · · Score: 0

      People who use Flash deserve every last crash it causes.

      Made by idiots for idiots. Beautiful.

    13. Re:The problem is not threads vs processes... by Homburg · · Score: 1

      NSPluginWrapper does just this. The main use, I think, is for using 32-bit plugins with a 64-bit browser, but you can also use it to isolate plugins in separate processes (which, given how unstable flash is on linux, is damn useful).

    14. Re:The problem is not threads vs processes... by Anonymous Coward · · Score: 0

      Because flash is an integral part of quite a few websites these days, and launching completely separate windows for them would look bad.

      Also, we give plugins the amount of leniency they have in order for them to do their stuff quickly and efficiently. We can manage them better, but that will reduce their performance.

    15. Re:The problem is not threads vs processes... by Mattsson · · Score: 1

      I thought that (one thing crashing not taking down the entire application) was what this was all about?
      Today when Flash, or any other plugin, crashes it takes down Firefox.
      Preferably, it would take down the Flash-content on the tab whose Flash-process crashed, or at least only the tab.

      --
      /.Mattsson - My native language is not English, so please don't whine over linguistic errors. (That's lame anyway...)
  12. the real question is... by Tumbleweed · · Score: 3, Interesting

    Will Chrome mature to have a nice system of plugins to match the advantages of Firefox before Firefox rearchitects this very low level code?

    I sometimes wonder about the FF devs - I've been wondering about the lack of a multi-threaded (at least) UI for a few years now. That project kept getting put off and put off until there was too much code to change easily. Only now that a real competitor comes along do they bother with the obvious thing that should've been put in from the start. Do FF devs not actually USE FF? Or do they not browse sites with Flash apps that go out of control and make the browser completely unresponsive? I find that hard to believe.

    Whatever. At least it'll finally happen. One wonders how many people will have switched over to Chrome by the time they get this out the door, though.

    1. Re:the real question is... by BenoitRen · · Score: 2, Funny

      Do FF devs not actually USE FF?

      A sizeable chunk of the core Mozilla developers don't use Firefox. They use the superior SeaMonkey.

    2. Re:the real question is... by Tumbleweed · · Score: 1

      A sizeable chunk of the core Mozilla developers don't use Firefox. They use the superior SeaMonkey.

      Does Seamonkey have a multi-threaded UI? If not, same problem.

    3. Re:the real question is... by BenoitRen · · Score: 1

      Nope, it doesn't have multi-threaded UI. Do you really think it's possible in the first place? Only one thread is allowed to be attached to the UI on most (all?) platforms.

      Those developers use SeaMonkey because it's more stable and doesn't pander to clueless end-users.

    4. Re:the real question is... by Anonymous Coward · · Score: 0

      Do FF devs not actually USE FF? Or do they not browse sites with Flash apps that go out of control and make the browser completely unresponsive?

      Probably the latter. After all, not all sites using Flash are crap - I've never had any problem with YouTube, for example. And addons like FlashBlock avoid the problem when you do stumble on the crap sites.

    5. Re:the real question is... by BZ · · Score: 1

      The amount of code that needs changing here has actually been decreasing in a lot of cases.. You seem to assume that Firefox had a significantly smaller codebase at some point. It didn't, really, ever since the Phoenix project existed.

      As for Flash, that's a separate issue from what this article is about; putting plug-ins out-of-process is not the same as splitting up browser rendering across multiple processes.

    6. Re:the real question is... by Anonymous Coward · · Score: 0

      Oh, they do use Firefox. On their shiny top-of-the-line MacBook Pros.

      What, you thought their hardware was anything like the actual users they claim to be going for?

      The only people who don't have the awesome machines are those not employed by Mozilla Corporation.

    7. Re:the real question is... by MrNemesis · · Score: 1

      Not when you *have* to view the flash on the crap flash site, and it causes your browser to behave like a european swallow carrying a coconut. Flashblock works great for all the terrible, terrible misuses of it on t'interweb, but when it's a necessary evil it'd also be nice to have a browser that takes reasonable steps to protect itself.

      --
      Moderation Total: -1 Troll, +3 Goat
  13. Interest dynamic between Firefox and Chrome: by darpo · · Score: 4, Insightful

    They both have geek-cred, but Chrome people say Firefox is unstable, while Firefox people complain Chrome has no extensions. So it's a race between the two browsers: will Firefox get tab isolation before Chrome, or will Chrome get extension support before Firefox? Either way, we users win.

    1. Re:Interest dynamic between Firefox and Chrome: by silent_artichoke · · Score: 1

      It's almost as if innovation was being caused by competition!

    2. Re:Interest dynamic between Firefox and Chrome: by BenoitRen · · Score: 1

      And then you have SeaMonkey, the best of both worlds!

  14. I kind of like single-processor apps. by Sowelu · · Score: 4, Insightful

    The advantage of single-processor apps in a less-than-perfect OS, is that when the app decides to chomp up all the CPU that it can grab, it doesn't cripple your machine. Moving from one to two cores for me has meant that browsers can't suck down 100% of my CPU and prevent me from even closing them for minutes at a time. This had better not let Firefox use up 100% of my machine again.

    1. Re:I kind of like single-processor apps. by RiotingPacifist · · Score: 1

      multi-threading is all they need to lock up your system, but ofc more than one thread/process needs to be chomping at the same time!

      --
      IranAir Flight 655 never forget!
    2. Re:I kind of like single-processor apps. by Eunuchswear · · Score: 4, Insightful

      If a process using 100% of your cpu "cripples" your machine your OS is broken,

      --
      Watch this Heartland Institute video
    3. Re:I kind of like single-processor apps. by Anonymous Coward · · Score: 0

      Your OS doesn't automatically identify race conditions and terminate offending processes? How primitive.

    4. Re:I kind of like single-processor apps. by CyberSlammer · · Score: 1
      I'm running Firefox with Windows 7 RC1 with three tabs and it's chewing up almost 100mb of RAM...did the same thing with Windows XP and Vista, even with a fresh install.

      Care to address this?

    5. Re:I kind of like single-processor apps. by Anonymous Coward · · Score: 0

      Ahem. Then both Linux and Windows are both broken.

      (Hint: Fail to ulimit your linux and malloc out past your available swap. Get ready to learn about REISUB.)

    6. Re:I kind of like single-processor apps. by Longinus00 · · Score: 1

      If using 100MB of ram cripples your machine then you probably shouldn't be running Windows 7 in the first place.

    7. Re:I kind of like single-processor apps. by spanky+the+monk · · Score: 1

      This is actually what happens on windows; Crappy scheduler I believe. On my FreeBSD desktop I can have come code compiling and still watch movies without a glitch.

    8. Re:I kind of like single-processor apps. by chromas · · Score: 2, Insightful

      If a process using 100% of your cpu "cripples" your machine your OS is broken

      I've had both Win and Lin do that (32- and 64-bit) on various computers. Preemtive multitasking on multiple CPUs should make it impossible yet it still happens. What's worse is that by the time top (or whatever process viewer) gets around to actually showing something--possibly 10 minutes later--the culprit process is done masturbating so you can't tell who it was. Something's just wrong when even a text-mode terminal takes minutes to do anything.

    9. Re:I kind of like single-processor apps. by Sowelu · · Score: 1

      Yeah, I'd personally be very happy if Windows reserved 0.1% of its CPU specifically for a sleek and fast task manager that could pop up instantly, always ran, and always worked.

    10. Re:I kind of like single-processor apps. by Randle_Revar · · Score: 1

      And I am running SeaMonkey on Debian and it is using 650-700 MB (res) (~1300 virt, ~30 share) with 89 tabs. What's your point? And what does ram usage have to do with cpu usage?

    11. Re:I kind of like single-processor apps. by toddestan · · Score: 1

      What about real-time operating systems?

    12. Re:I kind of like single-processor apps. by CyberSlammer · · Score: 1

      Did I say it was using 100% of my CPU? Learn to read.

    13. Re:I kind of like single-processor apps. by ion.simon.c · · Score: 1

      Heh. WTF are you doing that fucks your system so hard? Are you SSH'd in, or running a xterm (of some sort)?

    14. Re:I kind of like single-processor apps. by ion.simon.c · · Score: 1

      Moving from one to two cores for me has meant that browsers can't suck down 100% of my CPU and prevent me from even closing them for minutes at a time. This had better not let Firefox use up 100% of my machine again...

      So, what was it that you were *trying* to say? FWIW, I understood your statement in the way that Eunuchswear did.

    15. Re:I kind of like single-processor apps. by chromas · · Score: 1

      Web browser, music player, X server--they take turns. It doesn't happen often and it's probably a bug in the software, such as an infinite loop. The important thing is, no matter how much CPU any process is using, anything else running with a priority >= the offending one should at least get a chance at having a few cycles . Unless there's a bug in the OS (or CPU?), it should be impossible for any process to lock up any other.

      Perhaps the cause is a process looping on a system call; I'd say that's reason for a little kernel/user interface reform.

    16. Re:I kind of like single-processor apps. by Anonymous Coward · · Score: 0

      Bah. Even Linux becomes ridiculously unresponsive at times. Although for all I know, that's really a problem with Xorg (thanks a lot for turning ctrl-alt-backspace off by default, guys...).

      It's especially problematic if the runaway process also leaks memory. Few things are more painful than desperately trying to get into text mode before the swapping is so bad you'd rather just reset.

    17. Re:I kind of like single-processor apps. by Anonymous Coward · · Score: 0

      Linux is not perfect and yet it can handle 100% CPU apps just fine. A while ago I was using gentoo on an old Dell Lattitude(1.Ghz CPU, 1GB RAM) and I used to have compilations running in the background with -j3, CPU at 100% for hours on end and yet I could still browse and listen to music(although it did get sluggish, it wasn't "crippled" and it was quite useable)

    18. Re:I kind of like single-processor apps. by rgviza · · Score: 1

      or misconfigured.

      --
      Don't kid yourself. It's the size of the regexp AND how you use it that counts.
  15. A funny answer, but it's also the serious one by whiledo · · Score: 3, Insightful

    Because it's hard?

    --
    Moderators: Before moderating a comment Insightful/Informative, check to see if a child post has already refuted it.
  16. Tab Crash? by Anonymous Coward · · Score: 0

    When was the last time a broken tab brought down your whole browser without a java applet being involved?

    1. Re:Tab Crash? by MikeUW · · Score: 1

      The last time I viewed a page with Flash in it.

  17. Project Name: by Anonymous Coward · · Score: 0

    The project name should be: Late to the Partyzilla

  18. LOL! You Have To Be Joking... by Anonymous Coward · · Score: 0, Flamebait

    "Will Chrome mature to have a nice system of plugins to match the advantages of Firefox before Firefox rearchitects this very low level code?"

    Chrome already has plugin support well along in development.

    And your wondering if a complete top to bottom rewrite of the stinking pile of shit codebase that is Firefox is going to arrive sooner?

    LOL!

    How many years did it take the clowns to even admit to FF's massive memory/resource leaks, let alone actually finally do something to less them?

    1. Re:LOL! You Have To Be Joking... by Tumbleweed · · Score: 1

      > "Will Chrome mature to have a nice system of plugins to match the advantages of Firefox before Firefox rearchitects this very low level code?"

      Chrome already has plugin support well along in development.

      And your wondering if a complete top to bottom rewrite of the stinking pile of shit codebase that is Firefox is going to arrive sooner?

      Yes, it's got plugin _support_, but notice I said 'a nice system of plugins' - that is quite different. Having the capability to use plugins with very few plugins (and no _mature_ plugins) is another situation altogether. I would say only a few dozen particular plugins are critical to cover the majority of needs, though, so it shouldn't be that hard, compared to fixing FF.

  19. Mod parent way up by Anonymous Coward · · Score: 0

    I would love to see this as a core FF engine option -- a setting that says "Don't waste any processing power on anything other than what's right in front of me."

  20. Great! by Jherico · · Score: 0, Flamebait

    So now when firefox wigs out and starts chewing up all available CPU cycles, it will take up 100% of my cycles instead of the 50% available to one CPU.

    --

    Jherico

    What can the average user can do to ensure his security? "Nothing, you're screwed"

  21. Makes Firefox/browser platform of the future by danhs7 · · Score: 2, Insightful

    For the last few years Google's strategy has been to make the browser the platform of choice. That would make the whole Windows, Linux, Mac, mobile whatever choice irrelevant.

    Making Firefox act more like a real operating system, each "application" runs in its own process is another step in that direction. It means that my gmail browser window won't crash if I surf to some buggy website. And it means that I can run a lot of browser based application faster and more stably.

    This is the next logical step for people to start using Google word processor running in firefox instead of Word or OpenOffice. Once there's a stable browser based platform for browser applications to run in, a whole world of possibilities begins to opens up.

    1. Re:Makes Firefox/browser platform of the future by Smallpond · · Score: 1

      Also, separate processes provides more isolation, so the malware site I'm visiting has no avenue to get at the banking application in the next tab.

      However, web based apps require all browsers to render basic html properly. When is firefox going to fix Bug 33654? It was reported just over 9 years ago. This is the bug that prevents you from using TEXTAREA html elements in forms and getting them to be a consistent size. So far its been reported and marked as a duplicate of this bug at least 25 times.

    2. Re:Makes Firefox/browser platform of the future by danhs7 · · Score: 1

      I think the entire notion of rich user interaction in browser is a significant barrier.

      No one will argue that with the exception of the most AJAXy websites (gmail, google maps, etc.) desktop user interface is far superior to web user interface.

      CSS and HTML (maybe 5?) don't seem sufficient. That's why we've seen non-standard solutions emerge: Flash, silverlight, etc...

      I tend to think the issue of rich web interface to rival desktop UI is a completely separate, but very relevant issue.

  22. You mean... by Anonymous Coward · · Score: 0

    Google's in-house browser and Microsoft's closed source browser are both ahead of an OSS project in terms of features because they're not reacting to market leaders? (I am aware that Chromium is open source, but Google does not solicit patches from the community)

    This is completely unlike Looking Glass/Aero/Compiz, and is completely dissimilar from Office/OpenOffice, and I doubt the situation has anything in common with .Net/Mono.

  23. Sorry! by bogaboga · · Score: 1

    I meant to say: "...QT is now LGPL..."

    My mistake.

  24. I'm not sure about the concept by SirLestat · · Score: 1

    Sure, making more process make it possible to run on multi-core and/or multi-cpu. There is no doubt this is the future but there is a way better way of running things on multiple cpu/core. It is not a new invention, they are called threads !
    I fully understand they are not protected from each other so if one crash it could bring the whole app down. However I would expect the 8th version of an application like IE not to crash and burn everyday ... ? Ok, plug-ins can be crap, load each separate one in their own process (all instances of a same plug-in in the same process, it would also save memory as they could share the not written to pages in same process as would IE running all tabs in same process). Different processes cannot share the same shared pages like threads can, having every tab is a process use a lot more memory than it really should. Opening 8 empty tabs in IE8 is close to 300 meg or ram, I did not even dare loading any big website in them. I am a professional software developer and I'm getting more and more frustrated on how sloppy software development gets just because people can buy better hardware. No we cannot do all those nice feature with 640k of ram but it does not require 3 gig ! For everyones information I'm not a big microsoft nor linux fan and I'm currently using Opera on XP and I can't remember last time it crashed.

  25. Answer is obvious by Anonymous Coward · · Score: 0

    Why isn't everyone doing this?

    To comply with the open source community's "Microsoft Tail Lights" rule, the Firefox team did not work on anything until Microsoft had already done it.

    It's hard work coming up with good ideas. It's far easier to just look at what Microsoft does, then copy that.

  26. Why do we need an operating system? by MarkvW · · Score: 0, Offtopic

    Are we always going to need operating systems?

    1. Re:Why do we need an operating system? by Anonymous Coward · · Score: 0

      To intermediate between hardware and applications? That's kind of what they do.

  27. I love having options by arielCo · · Score: 1

    One such: Foxit Reader works quite well in Firefox.

    Strikes me as odd it hasn't been mentioned already. I know, I know, it's beerwise "gratis" as opposed to [F]OSS, but a Windows user should tolerate it well ;)

    --
    This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
  28. That was my favorite feature from Google Chrom by Anonymous Coward · · Score: 0

    ... and soon I'll have it in my favorite browser! Hooray!

  29. Tamarin by Compuser · · Score: 1

    I hope this integrates nicely with Tamarin and makes its way into FF4.

    1. Re:Tamarin by Randle_Revar · · Score: 1

      I would certainly expect it by 4 aka Mozilla 2.

      Unless you meant 3.6 nee 3.2 aka firefox 3.next which may ultimately may be called 4.

      This is why the Mozilla habit of just following gecko versions was better.

    2. Re:Tamarin by BZ · · Score: 1

      Tamarin isn't actually being used for anything in Gecko, anymore. nanojit is being used, of course.

  30. A Name? by ignavus · · Score: 1

    FireProcs, of course!

    --
    I am anarch of all I survey.
  31. Maybe first they should.. by pottymouth · · Score: 1

    Get the DAMN THING TO RUN ON 1 PROCESSOR WITHOUT CRASHING!! For heavens sake!! It reminds me of an early version of IE. How sad. I can't go to my local weather page without it crashing! It's crazy bad.

  32. I've been harping about this for years now. by AbRASiON · · Score: 1

    It's most definitely about time, each tab should have it's own process and it should support multiple cores.
    I love firefox but the performance is not what it should be, considering the 3ghz quad core machines we throw at it.

    I mean it's moving pictures and text around for goodness sakes, also a tab should not lock up my whole damned browser!

  33. Safari Has something like this... by captjc · · Score: 1

    It is all in implementation. Safari is neat in that it does something similar--at least with youtube-like flash videos. When I open a video in a new tab, it will load the contents but not play anything until I select the tab. It will keep playing if I select another tab.

    Something like this in Firefox would be great. Load the page in the background, but do not run it until I actually click on the tab. It seems like a nice compromise between the GP's wishes and those who like stuff running in the background.

    --
    Slow Down Cowboy! It's been 1 hour, 47 minutes since you last successfully posted a comment
  34. Falling a bit short of the moon, eh ? by billcopc · · Score: 1

    a simple implementation that works with a single tab (not sessions support, no secure connections, either on Linux or Windows, probably not even based on Firefox)

    Oh wait, I got a great idea for a name: Netscape Navigator 3!

    --
    -Billco, Fnarg.com
  35. Uh oh by mongolian · · Score: 1

    Does this mean that when ff goes out of control that it will instead of using up 99% of one cpu, use up 99% of each one?! I guess it's only on one machine that I currently have that problem, but it seems that it's stability on a single cpu ought to be a higher priority.

    1. Re:Uh oh by Torp · · Score: 1

      Aye aye!

      Please leave firefox constrained to only one CPU core so i have the other cores left for useful work!

      --
      I apologize for the lack of a signature.
  36. More complexity by Anonymous Coward · · Score: 0

    More complexity. Just what we need.

    Like Firefox wouldn't already be a wild beast.

    Like it wouldn't already be a loose cannon.

    Look what that the tooth fairy brought last month:

    CVE-2009-1313 (04/30/2009)
    CVE-2009-1312 (04/22/2009)
    CVE-2009-1311 (04/22/2009)
    CVE-2009-1310 (04/22/2009)
    CVE-2009-1309 (04/22/2009)
    CVE-2009-1308 (04/22/2009)
    CVE-2009-1307 (04/22/2009)
    CVE-2009-1306 (04/22/2009)
    CVE-2009-1305 (04/22/2009)
    CVE-2009-1305 (04/22/2009)
    CVE-2009-1304 (04/22/2009)
    CVE-2009-1304 (04/22/2009)
    CVE-2009-1303 (04/22/2009)
    CVE-2009-1302 (04/22/2009)
    CVE-2009-1232 (04/02/2009)

    With that pace we are indeed going to need Multi-Processor Support to handle the vulnerability information.

  37. Split page rendering for more speedup? by benow · · Score: 1

    The one thread per tab idea is nice, but the usual usecase is only one tab doing something. Nice for tab isolation, but not of great benefit for performance. It would seem to me that real benefit on a multicore box would come from parallelizing the bottleknecks, if possible... ie, the page rendering. Splitting the rendering on contained dom elements, perhaps. I'm not sure where or how this is best implemented, but addressing the cpu bottleknecks would seem to be the way to a faster browser.

  38. about time by smash · · Score: 1

    this is THE major reason chrome is my browser of choice. I am sick to death of shitty javascripts, plugings, etc freezing my browser so that i can't continue browsing while i wait in the other 5-6 tabs I've queued up.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  39. Chrome by Arancaytar · · Score: 1

    main user interface (chrome), and another or several others running the web content in each tab. Like Chrome

    This is going to get confusing.

  40. Urgh...I don't think users want a process per tab by OdinOdin_ · · Score: 2, Insightful

    In my experience, the HTML rendering is not the major crash or performance bottleneck issue with Mozilla.

    Users want separate processes for all plugins, i.e. a switchable mode in-process or out-of-process mode selectable for each plugin through Mozilla configuration. Let the plugins crash in their own, see ndiswrapper for some ideas on that.

    Users want a JavaScript engine that operates in a thread of its own (an extra thread per tab as necessary, when there is JavaScript work to do, think like dynamic thread pooling of JavaScript worker threads, most of the time 1 or 2 threads will handle JS in all your tabs).

    Users want all file/disk access to be in a separate thread to the UI. I believe network I/O already is (or is non-blocking at least).

    Hey move the entire file configuration/ SQLLite/ management for mozilla to a separate process that doesn't crash (even if the main Mozilla UI does). Users also want that damn stupid Linux/ext4 issue fixed and the horrible performance fixed, yes mozilla is more crazy than linux, and nope as a user it is Mozilla that crashes not the Linux the OS. In order to get application level crash recovery you make all writes to your database journaled through your own logfile. It is only the writes to that journal that need to sync to disk. Yes Eric is right mozilla should be more efficient in reducing the probability that a write to disk needs to extend a file so syncs don't cause an inode flush to stall the fs transaction throughput.

    But separate web pages in separate processes, just makes no sense to me. Most of the time requires little CPU as reading/thinking time dominates the moments of Mozilla klunkyness.

  41. Chrome doesn't always do so well... by Tybalt_Capulet · · Score: 1

    I've been using Chrome since it came out, and the fact is, generally the problems with Chrome is that the main task is the problem it crashes, getting up to over 300KB in resources, and that's just for the main task.

    In fact, when it's at the time of crash, almost every task runs more than my anti-virus and dwm.exe.

    I don't know if the problem is with Vista or not, but I share my home computer with my grandfather who barely understands Windows, so switching to another OS is out of the question.

    --
    Has the old saint in his forest not yet heard of it? That God is dead?
  42. Ion.SimIAn.c's "finest hour" by Anonymous Coward · · Score: 0
  43. The "finest hour", of Ion.SimIAn.c by Anonymous Coward · · Score: 0
  44. Or you could just disable the pdf plugin by rgviza · · Score: 1

    which causes firefox to open a "choose application" which defaults to acrobat, the application.

    Problem solved. It's a lot faster ;)

    --
    Don't kid yourself. It's the size of the regexp AND how you use it that counts.
  45. Firefox's hangups vs. modern usage... by lpq · · Score: 1

    Ah, yes...the problem with Firefox is one of poor design, with only 1 thread to manage all of the user's input and tasks. With 13 active windows, and an additional 79 background tabs (94 tabs total), I have about 33 threads allocated, but only 1 thread being used to actually manage user input and the various 'active' tabs (apparently 1 of the tabs, (who knows which one, FF doesn't provide any way to tell which 'tab' it is, i.e.-no internal 'ps') is hogging things). Of course if this was a real OS, we could see what was hogging the cpu and the rest of the browser could run on one of the *3* other 'idle' cores. But hey, this makes for easier design -- just doesn't scale well.

    CPU |CSWitch|Thread
    96.96 |866 |firefox.exe+0x15a0
    |7 |M0ZCRT19.dl|!endthreadex+0xa0
    |2 |MSVCR71.dll!_threadstartex
    | |xul.dll!gfxPattern::~gfxPattern+0x75
    | |MOZCRT19.dll!endthreadex+0xa0
    |42 |MOZCRT19.dll!endthreadex+0xa0
    | |MOZCRT19.dll!endthreadex+0xa0 [5 copies of this line]
    | |wdmaud.drv!MixerCallbackThread
    | |WINMM.dll!mciwindow
    |2144 |WINMM.dll!timeThread
    | |kernel32_dllBaseThreadStartThunk
    | |NPSWF32dll!native_ShockwaveFlash_TCallLabel+0x14ad3 [4 copies of this line]
    |2 |MSVCR71.dll!_threadstartex
    | |MSVCR71.dll!_threadstartex [6 copies of this line]
    |45 |MSVCR71.dll!_threadstartex
    | |MSVCR71.dll!_threadstartex [6 copies of this line]
    | |RPCRT4.dll!ThreadStartRoutine
    | |mswsock.dll!SockAsyncThread

    Can't imagine *why* anyone would even consider needing a multiprocessor browser, unless they, um, left it up for days at a time, and often were in the middle of one task or project, then after a break came back and got involved in another -- usually with all windows being shut down in some stack-like order unless windows or the browser crashes. One window with ~20 background tabs had all of the day's slashdot-headlines-of-interest opened with me slowly clicking through them (getting interrupted and not finishing the tabs, now, a day later....*cough*).

    Ok...so I have alot on my plate -- not to mention books to read, emails to write, articles and letters to write...way much more to do than I have time for, but what else is new? :-)

    p.s.The '|' separated table layout is a slashdot *feature*. Readers are to do layout in their brains.