C-Programm & Cflags

Ich habe vor einiger Zeit das Prinzip von Makefiles anhand eines kleines Beispiels gezeigt -> http://suckup.de/howto/c/c-programm-primzahlen-makefiles/ <- den selben Quelltext kompilieren wir heute mit verschiedenen C-Flags und 1000000 Schleifendurchläufen …

 

1.)  ohne C-Flags

gcc -lm primzahlen.c -o primzahlen_slow

 

Output: time ./primzahlen_slow

[...]

999961
999979
999983

real 0m1.760s
user 0m1.420s
sys 0m0.164s

 

2.)  ohne C-Flags & ohne „math.h“ (sqrt)

gcc primzahlen.c -o primzahlen_slow

 

Output: time ./primzahlen_slow

[...]

999961
999979
999983

real 0m1.407s
user 0m0.988s
sys 0m0.192s

 

3.)  -O2 & ohne „math.h“ (sqrt)

gcc -O2 primzahlen.c -o primzahlen_2

 

Output: time ./primzahlen_slow

[...]

999961
999979
999983

real 0m1.405s
user 0m0.976s
sys 0m0.188s

 

4.) -Ofast (http://gcc.gnu.org/gcc-4.6/changes.html) & ohne „math.h“ (sqrt)

gcc -Ofast primzahlen.c -o primzahlen_fast

 

Output: time ./primzahlen_fast

[...]

999961
999979
999983

real 0m1.377s
user 0m0.980s
sys 0m0.180s

 

5.) -Ofast + amdfam10 (http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD#Athlon_X2_7x50.2C_Phenom_X3.2FX4.2C_Phenom_II.2C_Athlon_II_X2.2FX3.2FX4

Ein paar spezielle CFlags für meine CPU. :) (cat /proc/cpuinfo)

gcc -Ofast -funsafe-math-optimizations -funsafe-loop-optimizations -m64 -mtune=amdfam10 -mabm -msse4a -floop-parallelize-all -ftree-parallelize-loops=4 -floop-strip-mine -floop-block -funroll-all-loops -fbranch-target-load-optimize -lm primzahlen.c -o primzahlen_fast

 

Output: time ./primzahlen_fast

[...]

999961
999979
999983

real 0m1.327s
user 0m0.944s
sys 0m0.172s

 

Fazit: 

Sobald ich -O1, -O2, -O3 oder -Ofast bei diesem kleinen Beispiel nutze ist der Geschwindigkeitsunterschied minimal und es ist egal, ob vorgefertigte mathematische Funktionen genutzt werden oder nicht.

Google Chrome App für Android 4

Gerade bei Twitter gelesen: „Google veröffentlicht Chrome für Android„. Leider ist die neue Google Chrome App nur für Android 4.0 „Ice Cream Sandwich“ und für bestimmte Länder verfügbar… aber da ich seit einigen Wochen ein Galaxy S2 mit CyanogenMod9 nutze, ist das kein Problem für mich. ;)   

Google veröffentlicht Chrome für Android
Google veröffentlicht Chrome für Android
Google Chrome für Android Beta ist da - Alle Infos
Google Chrome für Android Beta ist da - Alle Infos

 

 

 

 

 

 

 

 

 

Tabs: geöffnete Tabs vom PC können auf’s Smartphone übertragen werden, zudem kann man zwischen den Tabs sehr einfach Navigieren und bereits geöffnete Tabs werden auf Chrome-Startseite angezeigt

Google_Chrome_Tabs
Google_Chrome_Tabs

 

Chrome + Google Suche: natürlich ist die Google Suche direkt in der URL integriert 

Chrome_Google
Chrome_Google

 

Synchronisieren: Lesezeichen synchronisieren, an Google Diensten (z.B. Google Mail) automatisch anmelden, automatisch Formular Vervollständigung … 

Chrome_Google_Synchronisieren
Chrome_Google_Synchronisieren

 

Entwickler: via adb kann man die Webseite direkt vom Computer aufrufen und so anzeigen lassen, wie diese auch auf dem Smartphone angezeigt wird. Wer nicht weiß was „adb“ ist, kann dies hier nachlesen -> http://suckup.de/windows/android-debug-bridge-adb-howto/

Chrome_App_Develop
Chrome_App_Develop

 

mehr Infos: http://www.google.com/intl/de/chrome/android/features.html