btwotch    

, Deutschland · männlich · registriert seit 2008 · heute zuletzt online


mailto, against spam!

Speedup via Format String

Computer · · 1 Kommentar

Gegeben ein String:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Aber es sollen nur die ersten 213 Zeichen ausgegeben werden:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Intuitive Loesung: mit einer for-Schleife die ersten 213 Zeichen ausgeben
Bessere Loesung: printf mit %.*s Format


Beispiel:

    1 #include <stdio.h>
    2 
    3 int main()
    4 {
    5   int i, j;
    6   char txt[] = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    7                sed diam nonumy eirmod tempor invidunt ut labore et dolore
    8                magna aliquyam erat, sed diam voluptua. At vero eos et
    9                accusam et justo duo dolores et ea rebum. Stet clita kasd
   10                gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
   11                amet.";
   12 
   13 #ifdef TEST1
   14   for (j = 0; j < 1000000; j++)
   15     for (i = 0; i < 213; i++)
   16       printf("%c", txt[i]);
   17 #endif
   18 
   19 #ifdef TEST2
   20   for (j = 0; j < 1000000; j++)
   21     printf("%.*s", 213, txt);
   22 #endif
   23 }

Test1:

gcc -DTEST1 test.c && time ./a.out > /dev/null

real 0m2.850s
user 0m2.804s
sys 0m0.006s

Test2:

gcc -DTEST2 test.c && time ./a.out > /dev/null

real 0m0.220s
user 0m0.210s
sys 0m0.009s

07. September 2010 06:58

Tags:  ·  ·  ·

1 Kommentar

vibe am 08. Sep 2010 10:08

nett ;)

Blog durchsuchen
(nur öffentliche Einträge)

Willst du auch bloggen?
Kostenlos bloggen bei Spin.de
Diese Seite ist eine auf spin.de gelagerte persönliche Homepage, deren Verantwortlichkeit beim Nutzer liegt.
spin.de ist eine große Online-Community mit Chat, Blogs, Foren, Online-Spielen und vielem mehr.
Deine eigene Homepage mit Blog und Gästebuch

Impressum · Datenschutz · Sitemap