Programok optimalizált fordítása forrásból

Kezdőlap Fórumok Programozás Programok optimalizált fordítása forrásból

10 bejegyzés megtekintése - 1-10 / 10
  • Szerző
    Bejegyzés
  • #1995772
    admin
    Adminisztrátor

      – A kevésbé fontos:
      a suse ftp site-járól letöltöttem a 7.4.6 forrás RPM-jét és ennek a SPEC fájla segítségével megpróbáltam lefordítani. Itt mindjárt egy hibát dobott: com_err szükséges a kerberos 5-höz. Telepítsem fel a megfelelõ lib-et. Na jó, de melyiket?
      Mivel egyenlõre nem használok krb5-öt így ezt kivettem a spec fájlból, és így elkészítettem a i686-os rpm-eket. De hátha a késõbbiekben szükség lehet rá, így nem tudja valaki milyen lib fájlt kell feltelepíteni?

      Ez közben meg is oldódott….

      #1995773
      xcut
      Felhasználó

        flagek: -O2 az a tuti, az -O3 már kockázatos;
        -march=processzortipus -mcpu=processzortipus -fomit-frame-pointer (felgyorsít, de lehetetlenné teszi a debuggolást), stb…

        #1995774
        kl223
        Felhasználó

          flagek: -O2 az a tuti, az -O3 már kockázatos;
          -march=processzortipus -mcpu=processzortipus -fomit-frame-pointer (felgyorsít, de lehetetlenné teszi a debuggolást), stb…
          [align=right][snapback]109617[/snapback][/align]

          itt egy teljes lista: http://www.config.hu/content.php?article.22

          ez egy gentoo make.conf. Ollózd ki belõle a fordítási opciókat! Ha esetleg „külsõleg” nem oldható meg a dolog, picit haxold meg a Makefile-t!

          xcut: hááát igen…. pedig emléxem én még azokra az idõkre, mikor mindent -O6 -al fordítottál 😀 hiába mondtam, h ne csináld…. 😉

          kl223

          #1995775
          admin
          Adminisztrátor

            Ok. Betettem a spec fájl ‘configure’ rész végéhez:
            CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays”

            Az rpmbuildert pedig így hívom meg:
            rpmbuild -bb –target=i686-pc-linux-gnu postgresql.spec

            Mérek néhány sebességet, majd írogatok még. 😉

            #1995776
            kl223
            Felhasználó

              Ok. Betettem a spec fájl ‘configure’ rész végéhez:
              CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays”

              Az rpmbuildert pedig így hívom meg:
              rpmbuild -bb –target=i686-pc-linux-gnu postgresql.spec

              Mérek néhány sebességet, majd írogatok még. 😉
              [align=right][snapback]109689[/snapback][/align]

              kíváncsian várom!

              kl223

              #1995777
              admin
              Adminisztrátor

                kíváncsian várom!

                kl223
                [align=right][snapback]109747[/snapback][/align]

                Sajna nem lettek jobb eredmények, sõt!!! 🙁

                A pg_autotune segítségével mértem:

                – Eredeti SUSE i586-os rpm-ek: 622-624 tps
                – i686, „–disable-static” és „disable-debug” 626-627 tps -ez jobb
                – Az elõzõ paraméterek + CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays” 601-602 tps- ez rosszabb 🙁

                #1995778
                kl223
                Felhasználó

                  Sajna nem lettek jobb eredmények, sõt!!! 🙁

                  A pg_autotune segítségével mértem:

                  – Eredeti SUSE i586-os rpm-ek:                        622-624 tps
                  – i686,  „–disable-static” és „disable-debug”        626-627 tps -ez jobb
                  – Az elõzõ paraméterek + CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays”        601-602 tps- ez rosszabb 🙁
                  [align=right][snapback]109765[/snapback][/align]

                  próbálj játszani az optimalizálással: próbáld -O2-vel, vagy -Os-el!

                  kl223

                  #1995779
                  fellow
                  Felhasználó

                    Luti:
                    „Sajna nem lettek jobb eredmények, sõt!!!

                    A pg_autotune segítségével mértem:

                    – Eredeti SUSE i586-os rpm-ek: 622-624 tps
                    – i686, „–disable-static” és „disable-debug” 626-627 tps -ez jobb
                    – Az elõzõ paraméterek + CFLAGS=”-march=pentium4 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays” 601-602 tps- ez rosszabb”

                    annyira nem kell csodalkozi, jo 10 eve a „mindent 20adara [tomoritsunk]” volt a divat, ma a „mindent 20szoroasara [gyorsitsunk]”; kerdes, hogy az valosagban ezek mennyit ernek;
                    nemreg a gwnben ( http://www.gentoo.org/news/en/gwn/20041229-newsletter.xml ) volt a tulzasba vett forditaskori optimalizalasrol egy cikk: http://forums.gentoo.org/viewtopic.php?t=271084

                    #1995780
                    admin
                    Adminisztrátor

                      annyira nem kell csodalkozi, jo 10 eve a „mindent 20adara [tomoritsunk]” volt a divat, ma a „mindent 20szoroasara [gyorsitsunk]”; kerdes, hogy az valosagban ezek mennyit ernek;

                      Ez úgy tûnik igaz, hogy nem túl sokat érnek. Mivel minden egyes pg_autotune futtatás kb. 1,5 óra volt így más módszerhez kellett folyamodnom.

                      Minden újrafordítás / installálás után lefuttattam egy lekérdezést 2x egymás után, és mértem az idejét.
                      Azért futtattam 2x, hogy a lemezelérés/cachelés a lehetõ legkevesebbet zavarjon be.

                      A futtatókörnyezet egy vállalati laptop (IBM T41) Centrino processzorral (1500MHz). Hálózatról üzemeltetve és maxon járatva.

                      Tapasztalatok:
                      – Az eredeti kód elég gyorsan lefutott (109 ms).

                      – Amikor P2-nél nagyobbra optimalizáltam a kódot, akkor kb. 20-40%-os sebességcsökkenést sikerült elérnem!! (kb. 135-150 ms)

                      – Végül is a i686, ./configure –disable-debug, gcc -O2 lett a nyerõ (108 ms), 1% alatti sebességnövekedésért inkább nem kockáztatom az adatbázisszerverem stabilitását.

                      #1877875
                      csaba
                      Felhasználó

                        Szeretném ha a forrásból fordított programok minnél „jobbak” lennének.

                        Nézegettem a Yopert, és úgy látom, hogy itt i686-ra fordították a binárisokat, valamint a „–disable-static” és „disable-debug” opciókat használták.

                        PostgreSQL-t fordítok éppen SLES9 alatt és szeretném, ha minél gyorsabban futna (persze tuningolom a postgresql.conf-ot is 😉 ).

                      10 bejegyzés megtekintése - 1-10 / 10
                      • Be kell jelentkezni a hozzászóláshoz.