Announcement

Collapse
No announcement yet.

Preview: Ubuntu's Performance Over The Past Two Years

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #81
    edit: when i read some posts here, especially from GNU/linux devs/pro/master gurus i sometimes think they better might be some kids that discovered hwo to configure/make install a program and are now pretending to be the uber geek. it often sounds here like in the kindergarden.

    not true, for any decent developer seek performance is the holy grail and sometimes tracking that small gap that maybe a dangerous flag expose can inspire a developer to pursuit a better way to access this gap safely, multiply by many and you get excellent software. <-- this is what separate an guru from a crappy developer.

    if is remotely true that you worked at HPC parallel algorithms[i could eat as analist because as a coder i won't eat it] you should know this and i know what im talking about, especially in cluster and supercomputers where gaining a single milisecond in 1 function can propagate and save thousands of dollars in energy alone in a year

    Comment


    • #82
      The Gentoo-manifest

      Originally posted by jrch2k8 View Post
      to BO$$ that as always trying to defend the dumbest tries of troll with 0 technical background in a technical site[try ubuntu forums there you can find iliterates like you and make them eat all bullshit you talk about]

      1.) Gentoo is for smart ppl and i mean mostly the smart ppl that develop software that will be converted later to .debs so dumb ppl like you can use it in software center, gentoo was never meant for dumb ppl so stay away from it, so as long as you want linux software to exist gentoo and LFS will exist along too is retardedly obvious.

      2.) Gentoo is faster for technical reason i will state later for posterity since i know for a fact you can't understand

      3.) Ubuntu popularity sure but removing the obvious those are mostly consumer that like you are completely illiterate in engineering hence useless for linux technical grow, gentoo has few consumers but many highly skilled developers that focus on technical grow, why you mix both things i can't understand(maybe im too smart and i can downgrade myself to your level of idiocy to get it?)

      4.) X11 protocol was designed when your father was chasing your mother in college and computers needed a couple a building floors and an electrical substation to work, so if you ask me it was very well designed but technology reached a point where X11 concepts can not be applied anymore due to hardware changes that cannot be foreseen in those days <-- smart ppl rant this just means was designed 30+ years ago and reached its end and wayland will take over for the next 30+ years

      5.) like i told you in another thread, you can't judge in any possible way why linux is superior or not to windows/mac since you need to be very smart to reach that point, again install firefox and teach your grandpa access facebook doesn't qualifies you as engineer, you as a regular users won't find much or at all limitations in any modern OS

      6.) Windows is a dependency hellish nightmare that is almost impossible to tolerate and it gets exponentially worse if you tie yourself to WFC api and this is why you see most apps[including those you named] install a retarded amount of libraries in an apps exclusive folder or massive .EXE that are statically linked or both but sure as normal user this is transparent for you

      7.) Again good usage resources is moot to ppl like you since you cannot exploit those resources using facebook or watching porn, this is needed for bussiness that every wasted resources or slowdown means lots of $$$ wasted by a variety of factors

      8.) Yes for smart ppl is quite trivial to realize if the NSA is accessing you PC or if there is a trojan horse NSA patch around and fixing it is even more trivial and this is true even in windows or mac[the fixing part is a challenge ofc i don't have sources to fix it myself], now users in you level are in the dark whichever OS you use but at least with linux is a lot less trivial to spy, after all whatever they do they end in a ethernet package that i can sniff and unlike movies there is no russian guy playing mario bros[hacker edition] that will bypass my firewall using a jostick, stop watching AXN

      ok, now the ovbious is gone lets go to topic

      well Gentoo it is faster and depending your hardware it will be lots faster for very simple technical reasons

      1F(as fact).) binary distros are normall normalized to the minimal exponent possible for each architecture, doing so to be able to install in as many system as is possible, this means basically -02 clean optimizations and only MMX/SSE2 support for vectorization[if enabled at all] and in multimedia packages they tend to use very slow codepaths to select feature at runtime [ffmpeg/mplayer] so their work out-of-the-box

      1A(as asnwer).)in gentoo you optimize for your CPU using every feature available, so if you leaved the 90 and you got 21st century hardware this will prove a very good speed upgrade[zambezi+/haswell architectures shines in gentoo for example]

      2F.) binary distros are normally a mess to deal with if you wanna stay bleeding edge[performance or code] an normally requires you to track a lot of dependencies[and possible breakages] but again if you are capable of doing this you won't use Ubuntu for it, wanna prove try to build blender git in ubuntu[ppa don't have all feature active] when you end and it runs without segfault you basically ended with gentoo using apt instead of portage, again no normal user will run into this issue since most think git is a cookie brand but ppl in gentoo actually develop for blender[in this example] and debug the hell out of it

      2A.) Gentoo is designed to deal with this issue and is really really good at it, is not designed to please your average dumb pleasant and even less BO$$

      3F.) Binary distro require versioning freeze to maintain an ABI stable for its period of life

      3A.) Gentoo is rolling and portage/overlays are always up to date with the latest line written and in many cases you can gain performance/stability/feature now that won't reach most binary distros for a while, for example kernel 3.11 give several performance/features not present before and i can use it now or Vc[SIMD library used by projects like calligra] since version 0.7.2 support fully FMA and AVX/2 and it improve heavily the performance in krita or ffmpeg git has a huge set of performance enhacement and features that you won't enjoy until 14.04 minimal, etc

      4F.) dependency was explained good and enough

      5F.) binary distros don't include by default many kernel/libraries features by default like iptables JIT compiler[awesome] or 1000HZ or preempt or CIFS features or Swap optimizations, etc etc etc

      5A.) in gentoo is trivial to enjoy this features and provide a nice improvement ease as cake

      6F.) binary distro usually nerf your multimedia stack

      6A.) in my gentoo i can play every codec made by mankind since is my unique system and no patent holder give a rat ass about it

      and for BO$$ a mind blowing fact performance is not only FPS and cool excel graphic bars and Btw in some cases some games can run actually faster in gentoo, i won't explain why try to analize it.

      note im sure for your kind of ppl this is way too advanced and whatever ubuntu gives is good enough and i agree but the fun thing of being smart and understand smart ppl stuff like C/C++[OMG] is that i can enjoy all those neat advancements way before you do and even help to fix it/improve it and that again is perfectly normal without smart ppl you lot will still live in caves and without you will be hard to make money[is not so easy to sell to smart ppl you know], so gentoo ppl make stuff today and you use it some months later in your software center. perfect balance

      btw about your patches bla bla bla, as long as you are a semi decent coder is not hard to reach gentoo/projects upstream but the semi decent phrase basically exclude 90% of canonical developers, i trully dunno why, but those guys send some messed bunch of unindented salad everytime they try, maybe they should hire someone to QA the code first

      *Note: most of this exclude ARCH and Manjaro
      Well put.

      What I always like to point out specifically is portage's flexibility: With aptitude, you can quickly end up with a broken system after an update, unlike portage, which does a great job on dependency-resolving.
      Compiling your software and resolving reverse dependencies does work out pretty well and has been working flawlessly for me for months (even when I manually brought my system back to the multilib-profile from no-multilib, which is undocumented).
      Who doesn't remember removing a package in aptitude ending up with removing hundreds of other ones concurrently, because it has been part of a meta-package?
      I'm glad these days are over for me. That's progress.

      I suppose you and BO$$ have been at sixes and sevens for a longer time now.
      How does it feel to let off some steam ?
      Last edited by frign; 16 July 2013, 05:19 AM.

      Comment


      • #83
        eudev

        Originally posted by jrch2k8 View Post
        edit: when i read some posts here, especially from GNU/linux devs/pro/master gurus i sometimes think they better might be some kids that discovered hwo to configure/make install a program and are now pretending to be the uber geek. it often sounds here like in the kindergarden.

        not true, for any decent developer seek performance is the holy grail and sometimes tracking that small gap that maybe a dangerous flag expose can inspire a developer to pursuit a better way to access this gap safely, multiply by many and you get excellent software. <-- this is what separate an guru from a crappy developer.

        if is remotely true that you worked at HPC parallel algorithms[i could eat as analist because as a coder i won't eat it] you should know this and i know what im talking about, especially in cluster and supercomputers where gaining a single milisecond in 1 function can propagate and save thousands of dollars in energy alone in a year
        You might want to check out the eudev-project, which is a fork of udev.
        Once could literally spend months optimizing the crappy code there (and the eudev-devs have already done a great job on that).
        For example, you often stumble upon loop-declarations like this, which are unoptimisable by the compiler (from libudev-device.c):

        Code:
        for (;;) {
            if (*b == 0)
                return (char*) a;
            if (tolower(*a) != tolower(*b))
                return NULL;
            a++, b++;
        }
        Fix (could be better, with pre-increments and a safer loop):
        Code:
        for (; *b; a++, b++){
            if (tolower(*a) != tolower(*b))
                return NULL;
        }
        return (char*) a;
        Some people really should change their mindsets about how to write software. Excusing yourself with faster computers leads to this careless coding-style and performance-bottlenecks add up, even in home-computing.
        Last edited by frign; 16 July 2013, 05:41 AM.

        Comment


        • #84
          Originally posted by frign View Post
          You might want to check out the eudev-project, which is a fork of udev.
          Once could literally spend months optimizing the crappy code there (and the eudev-devs have already done a great job on that).
          For example, you often stumble upon loop-declarations like this, which are unoptimisable by the compiler (from libudev-device.c):

          Code:
          for (;;) {
              if (*b == 0)
                  return (char*) a;
              if (tolower(*a) != tolower(*b))
                  return NULL;
              a++, b++;
          }
          Fix (could be better, with pre-increments and a safer loop):
          Code:
          for (; *b; a++, b++){
              if (tolower(*a) != tolower(*b))
                  return NULL;
          }
          return (char*) a;
          Some people really should change their mindsets about how to write software. Excusing yourself with faster computers leads to this careless coding-style and performance-bottlenecks add up, even in home-computing.
          Well, that's not even bad optimization, it's bad coding all in all. Why would you make an unconditional loop like that when you don't need to? I mean, it's not just that this can not be optimized by the compiler, the way it was wrote is harder to read.

          Comment


          • #85
            udev - The big mess

            Originally posted by mrugiero View Post
            Well, that's not even bad optimization, it's bad coding all in all. Why would you make an unconditional loop like that when you don't need to? I mean, it's not just that this can not be optimized by the compiler, the way it was wrote is harder to read.
            Yes, that's another point. It's insecure, because you can't be sure it's a well-formed char-array.
            I didn't include it in my fix, because I added a check-function earlier already.

            Working with the udev source-code you kind of get used to the horrible coding-style.
            For instance, instead of writing comments, they defined new functions which just returned a certain variable of a given array.
            It's a big mess.

            Comment


            • #86
              Originally posted by BO$$ View Post
              Snoooor. We were talking about desktop linux. Where most of the time such optimizations are just a rogue programmer showing off, sacrificing code readability thinking he's clever.
              then would be fun hear you whine cuz some guy was lazy to optimize his code and your wifi card take 5m to get signal or crying because some dev that like you thinked "lol SSD are cheap enough this days, why worry about excessive write operations" when your SSD wear out in some months instead of years or have your fast enough core2 computer boot in 5m because you know it works in haswell fast enough, so why care.

              1 small optimization maybe is uninteresting but thousands of small optimizations make a big difference

              Comment


              • #87
                Originally posted by frign View Post
                You might want to check out the eudev-project, which is a fork of udev.
                Once could literally spend months optimizing the crappy code there (and the eudev-devs have already done a great job on that).
                For example, you often stumble upon loop-declarations like this, which are unoptimisable by the compiler (from libudev-device.c):

                Code:
                for (;;) {
                    if (*b == 0)
                        return (char*) a;
                    if (tolower(*a) != tolower(*b))
                        return NULL;
                    a++, b++;
                }
                Fix (could be better, with pre-increments and a safer loop):
                Code:
                for (; *b; a++, b++){
                    if (tolower(*a) != tolower(*b))
                        return NULL;
                }
                return (char*) a;
                Some people really should change their mindsets about how to write software. Excusing yourself with faster computers leads to this careless coding-style and performance-bottlenecks add up, even in home-computing.
                it looks like fun certainly, ill check systemd code and study those loops[i switched to systemd all my gentoo boxes] but certainly those loops are UGLY and using chars that way could lead to many not so funny things.

                mmm this look like could be ported to use more safer types but ill have to track why in freezing hell they need to use char and even worse compare them inside a loop

                Comment


                • #88
                  What the function does

                  Originally posted by jrch2k8 View Post
                  it looks like fun certainly, ill check systemd code and study those loops[i switched to systemd all my gentoo boxes] but certainly those loops are UGLY and using chars that way could lead to many not so funny things.

                  mmm this look like could be ported to use more safer types but ill have to track why in freezing hell they need to use char and even worse compare them inside a loop
                  Remember, those are char-arrays. It is a string-modification-function, which strips a certain prefix from a given string.

                  Let's say b is "message_" and a is "message_outgoing";
                  The function effectively removes the prefix and returns a* "outgoing".

                  In case a doesn't begin with "message_", the function returns NULL.
                  When we reach the end of b (the terminating NULL-character), the function returns a*.

                  Given the fact b could be ill-formed and never contain a NULL-character, you're right: This function could be safer.

                  Comment


                  • #89
                    Originally posted by frign View Post
                    Remember, those are char-arrays. It is a string-modification-function, which strips a certain prefix from a given string.

                    Let's say b is "message_" and a is "message_outgoing";
                    The function effectively removes the prefix and returns a* "outgoing".

                    In case a doesn't begin with "message_", the function returns NULL.
                    When we reach the end of b (the terminating NULL-character), the function returns a*.

                    Given the fact b could be ill-formed and never contain a NULL-character, you're right: This function could be safer.
                    well that much i get but i'm not a friend of handling logic messing with actual words unless is absolutely necessary[except for php/JS] but i need track to kernel side API to check if this is imposed by the interface[this is what i meant, my bad] maybe it can be improved with other datatypes or re factoring the algorithm logic, ofc i need some time to study the code for that

                    Comment


                    • #90
                      Algorithm

                      Originally posted by jrch2k8 View Post
                      well that much i get but i'm not a friend of handling logic messing with actual words unless is absolutely necessary[except for php/JS] but i need track to kernel side API to check if this is imposed by the interface[this is what i meant, my bad] maybe it can be improved with other datatypes or re factoring the algorithm logic, ofc i need some time to study the code for that
                      If we knew for sure that a begins with b, then it would be as simple as a = a + strlen(b).
                      Because that's not the case, we have to do it with this technique.

                      It's also not logic-messing, but the processing of device-identifiers (part of eudev), so there's no real way around char-arrays, which are factually 8 bit unsigned-integer-arrays (effective enough) and in need to be returned.

                      In case you have a better idea, please let me know.

                      Comment

                      Working...
                      X