Kompilieren dauert zu lange!!

Gast #3141839
Lesenswert?

Ich weiß nicht woran es liegt, aber früher war das überhaupt nicht so. 
Wenn ich kleine Programme kompiliere, dann ist es eine ziemlich 
abgeschlossene Sache. Jedoch wenn ich einlese und rechne auch wenn es 
nur 20 Zeilen sind, dann dauert es so 15 Sekunden bis das Programm 
läuft.

Ich verwende den GNU GCC Compiler und weiß einfach nicht woran es liegen 
könnte. Alle Optimierungen sind schon von Codeblocks automatisch 
deaktiviert und ich kann nur mehr auf euch zählen...

Es tut weh wenn das so lange dauert...

Danke schonmal
Gast #3141854
Lesenswert?

1
#include <stdio.h>
2

3
int main(int argc, char *argv[])
4
{
5
  printf("Hello, world!\n");
6
  return 0;
7
}
Erstes Mal:
$ time gcc -Wall -o Prog x.c

real  0m0.869s
user  0m0.080s
sys  0m0.048s


Zweites Mal:
$ time gcc -Wall -o Prog x.c

real  0m0.068s
user  0m0.060s
sys  0m0.012s


Auf hundert Zeilen erweitert ändert sich nichts Signifikantes!
Gast #3141862
Lesenswert?

Norbert schrieb:
> Auf hundert Zeilen erweitert ändert sich nichts Signifikantes!

Ich denks mir eh,

Norbert schrieb:
> #include <stdio.h>
>
> int main(int argc, char *argv[])
> {
>   printf("Hello, world!\n");
>   return 0;
> }

Bei mir dauerts beim ersten mal: 0.296 s
Beim zweiten mal: 0.047 Sekunden

Jedoch das da z.B.:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <math.h>
4

5
#define LEERE_EINLESE_PUFFER while(getchar() != '\n')
6

7
long readNumber();
8
long factorial(long ganzeZahl);
9
double my_cosh(double x, long n);
10

11
int main()
12
{
13
   printf("Hello, world!\n");
14
   printf("Hello, world!\n");
15
   printf("Hello, world!\n");
16
   printf("Hello, world!\n");
17
   printf("Hello, world!\n");
18
   printf("Hello, world!\n");
19
    return 0;
20
}
21

22
//UNTERPROGRAMME********************************************************************
23

24
double my_cosh(double x, long n){
25
    int i = 0; double cos_erg = 1;
26

27
}
28

29
long readNumber(){
30
    long number;
31
    scanf("%ld", &number);
32
    LEERE_EINLESE_PUFFER;
33
    return number;
34
}
35

36
long factorial(long ganzeZahl){
37
    long fakultaet = ganzeZahl;
38

39
    if(ganzeZahl < 0)
40
        return 0;
41
    else if(ganzeZahl == 0)
42
        return 1;
43
    else{
44
        for( ;ganzeZahl > 1 ; ganzeZahl--){
45
            fakultaet = fakultaet * (ganzeZahl-1);
46
            printf("Fakultät: %ld\n", fakultaet);
47
        }
48
        return fakultaet;
49
    }
50
}
dauert bei mir um die 20 Sekunden beim ersten mal. Beim zweiten mal 
keine 0.8 Sekunden.

Wenn ich aber ein Leerzeichen im Code dazugebe, dann wieder 20 
Sekunden... ja natürlichw weil alles neu übersetzt wird, aber das kanns 
ja nicht sein...
Gast #3141864
Lesenswert?

Das sollte es eigentlich sein:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <math.h>
4

5
#define LEERE_EINLESE_PUFFER while(getchar() != '\n')
6

7
long readNumber();
8
long factorial(long ganzeZahl);
9
double my_cosh(double x, long n);
10

11
int main()
12
{
13
    long zahl, ergebnis;
14

15
    printf("Geben Sie eine ganze Zahl ein:>");
16
    zahl = readNumber();
17
    printf("\n***Sie gaben ein %ld\n\n", zahl);
18

19
    ergebnis = factorial(zahl);
20
    printf("Die Fakultaet der eingegebene Zahl ist: %ld", ergebnis);
21
    return 0;
22
}
23

24
//UNTERPROGRAMME********************************************************************
25

26
double my_cosh(double x, long n){
27
    int i = 0; double cos_erg = 1;
28

29
}
30

31
long readNumber(){
32
    long number;
33
    scanf("%ld", &number);
34
    LEERE_EINLESE_PUFFER;
35
    return number;
36
}
37

38
long factorial(long ganzeZahl){
39
    long fakultaet = ganzeZahl;
40

41
    if(ganzeZahl < 0)
42
        return 0;
43
    else if(ganzeZahl == 0)
44
        return 1;
45
    else{
46
        for( ;ganzeZahl > 1 ; ganzeZahl--){
47
            fakultaet = fakultaet * (ganzeZahl-1);
48
            printf("Fakultät: %ld\n", fakultaet);
49
        }
50
        return fakultaet;
51
    }
52
}
Gast #3141866
Lesenswert?

Karl schrieb:

> dauert bei mir um die 20 Sekunden beim ersten mal. Beim zweiten mal
> keine 0.8 Sekunden.
>
> Wenn ich aber ein Leerzeichen im Code dazugebe, dann wieder 20
> Sekunden... ja natürlichw weil alles neu übersetzt wird, aber das kanns
> ja nicht sein...

$ time gcc -Wall -o Prog x.c
x.c: In function ‘my_cosh’:
x.c:25: warning: unused variable ‘cos_erg’
x.c:25: warning: unused variable ‘i’
x.c:27: warning: control reaches end of non-void function

real  0m0.241s
user  0m0.076s
sys  0m0.028s

$ time gcc -Wall -o Prog x.c
x.c: In function ‘my_cosh’:
x.c:25: warning: unused variable ‘cos_erg’
x.c:25: warning: unused variable ‘i’
x.c:27: warning: control reaches end of non-void function

real  0m0.087s
user  0m0.068s
sys  0m0.024s



Hast du Performance Probleme mit deinem Dateisystem?
Welches OS?
Gast #3141871
Lesenswert?

Norbert schrieb:
> Hast du Performance Probleme mit deinem Dateisystem?
> Welches OS?

Windows 8 Prof, neu aufgesetzt.
Manchmal friert es ein, aber ich denke das ist ein generell bekanntes 
Problem, und hat nichts samit zu tun...

Sonst rennt es viel viel schneller als Win7 und ich habe keine Probleme 
mit Performance bei Matlab, etc..., außer bei CodeBlocks.

An was kann es denn liegen?
Gast #3141876
Lesenswert?

Karl schrieb:
> Norbert schrieb:
>> Hast du Performance Probleme mit deinem Dateisystem?
>> Welches OS?
>
> Windows 8 Prof, neu aufgesetzt.
> Manchmal friert es ein, aber ich denke das ist ein generell bekanntes
> Problem, und hat nichts samit zu tun...
>
> Sonst rennt es viel viel schneller als Win7 und ich habe keine Probleme
> mit Performance bei Matlab, etc..., außer bei CodeBlocks.
>
> An was kann es denn liegen?

Ich fürchte, da bin ich der falsche Ansprechpartner ;-)
Nutze seit einem Jahrzehnt nur Linux.

Aber bei Windows fällt mir sofort Indexdienst und Virenscanner ein.

Wie sieht's denn direkt von der Kommandozeile ohne Codeblocks aus?
Gast #3141900
Lesenswert?

Hmmm, braucht der gcc unter Widows immer noch die MinGW / cygwin 
Umgebung?
Ist das nicht noch 32bit Technik?
Eventuell von 32bit auf 64bit Windows8 gewechselt?

> Nach dem ersten mal geht es aber auch ziemlich fix...

Klar, nach dem ersten Start sollte das Gelumpe im RAM cache sein und die 
Kompilierzeiten sich im Millisekundenbereich bewegen.
Wir reden hier ja nicht von Raumfahrttechnik. ;-)
Gast #3141918
Lesenswert?

Michael S. schrieb:
> Ich nehme an die Harddisk ist zumindest an einigen Stellen kaputt, z.B.
> wo der der Compiler gespeichert ist.

Hmm, sollte ich mal versuchen den Compiler auf einer anderen disk zu 
installieren? Was hat das aber mit dem comoiler zu tun, wenn der erste 
Programmstart so lange braucht? Das kompilieren funktioniert ziemlich 
schnell nur das erste mal starten dauert ewig
Gast #3141921
Lesenswert?

Karl schrieb:
> Das Neukompilieren in der Powershell funktioniert sehr schnell. Jedoch
> wenn ich schreibe: prog.exe dann dauert es und dauert und irgendwann
> startet es

Ahhh, nicht der Compiler ist langsam, sondern das 'Kompilat'!

Damit ändern sich inode und die create-time oder wie auch immer so etwas 
bei NTFS heisst.
Hast du evtl. einen Virenscanner der (Hash)Signaturen von Programmen 
live/online prüft?
Gast #3141928
Lesenswert?

Karl schrieb:
> Knigge schrieb:
>> Hast du evtl. einen Virenscanner der (Hash)Signaturen von Programmen
>> live/online prüft?
>
> Ich habe Kaspersky Internez Security

* Durch die Kombination von Cloud-basierten Funktionen und 
leistungsstarken Sicherheitstechnologien, die auf dem PC ausgeführt 
werden...
* Das cloud-basierte Kaspersky Security Network sammelt weltweit Daten 
von Millionen teilnehmender Benutzersysteme

Toll, sowas will ich für mein System auch ;-)

Versuch doch mal die Kasperei temporär zu deaktivieren und schau ob man 
dann mit dem Rechner arbeiten kann...
Gast #3141944
Lesenswert?

Norbert schrieb:
> Versuch doch mal die Kasperei temporär zu deaktivieren und schau ob man
> dann mit dem Rechner arbeiten kann...

Du hast recht. Das war das Problem!! Kaspersky findet aber ab und zu 
doch VIren im Internet und fangt sie ab im Gegensatz zu Avira etc..
Das ist meine Erfahrung.

Bleibt nur noch die Frage wie ich diese Programmüberwachung ausschalte
Gast #3141960
Lesenswert?

Kennt sich irgendwer mit KP aus? Ich habe alle Programme aus der Liste 
entfernt und trotzdem dauert es lange bis es startet, nur wenn ich 
kaspersky beende dann geht es sehr schnell.

Keiner so ein Problem vorher gehabt?
Gast #3141965
Lesenswert?

Karl schrieb:
> Das Programm aus der Liste zu löschen nutzt anscheinend nichts... Nur
> wenn ich Kaspersky ganz beende funktioniert es, das ist jetzt aber blöd!

Ich hätte noch ein paar Lösungen anzubieten, die fangen aber mit 'fdisk' 
und 'format' an und dann gibt's hier wieder Meckerei;-)

Es ist aber interessant, das sich in den letzten zehn Jahren anscheinend 
nichts geändert hat.

Man braucht in der WinWelt ständig dickere CPUs und mehr RAM und mehr 
Festplattenspeicher und mehr ${X}, um sich dann von 
Virenscannern/Indexierern usw. wieder auf Geschwindigkeiten im 
Angström/Woche Bereich einbremsen zu lassen.

<Blaulicht>

...ACHTUNG: Alles was sie sagen kann und wird vor Gericht gegen sie 
verwendet...
Gast #3141994
Lesenswert?

Okey, hab da mal das ganze näher untersucht, und komme auf den Schluss 
dass die Firewall von Kaspersky alles verlangsamt!!
Alle anderen Dinge wie Programmkontrolle etc. spielen keine Rolle. 
Allein die Firewall macht probleme im 15 Sekunden Bereich.

Wer empfiehlt mir die Firewall zu deaktivieren?
#3142001
Lesenswert?

Wär eher die Frage, was die Firewall mit deinem Compiler oder dem 
Kompilat zu tun hat.

Wenn andererseits der Kaspersky bei jedem Programm, dessen Signatur er 
noch nicht kennt, erst einmal den Big Brother irgendwo in der 
Weltgeschichte konsultiert, dann sind Kaspersky und Programmentwickler 
natürliche Gegner. Zumindest solange, bis man dem Kaspersky beibringt, 
die betreffenden Verzeichniss in Frieden zu lassen.
#3142095
Lesenswert?

Wir dürfen uns hier auf Arbeit auch mit diesem russischen Virus 
herumschlagen.

Da passierts schon mal, dass der Compiler ungefragt im Quarantäneorder 
landet (trotz Ausnahmeregeln etc.) und man sich wundert, wieso das 
make-Skript nicht will.
Und wenn dann die wöchentliche gründliche Festplattenüberprüfung ansteht 
kann die ganze Abteilung eigentlich nur noch geschlossen Kaffee trinken 
gehen :-)

Alternativen kann ich dir leider nicht empfehlen.
Als ich daheim noch Windows drauf hatte hab ich auch verschiedene 
Virenscanner probiert.

Norton spielt in der selben Liga wie Kaspersky, was Gängelung und 
Ressourcenverschwendung betrifft.

Die kostenlosen Alternativen (Avira etc.) halte ich für Unnütz. 
Grundsetzlich alles, was eine Toolbar (Ask etc.) installieren will 
scheidet schonmal aus Prinzip aus.

Vom Hörensagen sollen die MS Security Essentials recht gut sein. Wieso 
auch nicht, die kennen ja hoffentlich ihr System am besten :-)
#3142242
Lesenswert?

le x. schrieb:
> Vom Hörensagen sollen die MS Security Essentials recht gut sein. Wieso
> auch nicht, die kennen ja hoffentlich ihr System am besten :-)

Die Essentials stören das System weniger, das stimmt. Aber die Viren und 
Trojaner stört es leider auch weniger, entsprechenden Tests zufolge.

McAfee wiederum hat die leidige Angewohnheit, beim Update der Signaturen 
locker mal 0,5GB RAM wegzufressen und auf älteren Kisten kann das auch 
mal ein paar Minuten Sendepause bedeuten.
#3143569
Lesenswert?

Abdul K. schrieb:
> Ich frage mich gerade, wie die Entwickler bei Kaspersky dann arbeiten?
> Die kompilieren ja auch!
> Also vermute ich, daß es irgendwo Ausnahmeregeln einzustellen möglich
> ist. Nur finden wo, tja, kann bei Windoof dauern...

Das ist keine Systemeinstellung ;-)
How to manage exclusion rules in Kaspersky Internet Security 2013
http://support.kaspersky.com/8742

> Häng das Ding vom Netz und arbeite einfach so.

Eine VM ist da deutlich komfortabler

A. K. schrieb:
> le x. schrieb:
>> Vom Hörensagen sollen die MS Security Essentials recht gut sein. Wieso
>> auch nicht, die kennen ja hoffentlich ihr System am besten :-)
>
> Die Essentials stören das System weniger, das stimmt. Aber die Viren und
> Trojaner stört es leider auch weniger, entsprechenden Tests zufolge.

Gibt's einen Virenscanner der bei unbekannten Sachen 100% erkennt?
Vor ein paar Wochen kam hier mal eine ziemlich gut gemachte Spam-Mail 
mit einem PDF-Anhang durch (nicht gezipped oder ähnliches)... Dreimal 
raten wieviele der >40 Scanner auf Virustotal.com zu dem Zeitpunkt was 
erkannt haben: Ein einziger, die anderen folgten z.T. >1 Tag später! Ein 
paar Tage später ähnliches Bild, nur waren es diesmal andere Scanner die 
zuerst anschlugen.
Da macht sich eine VM auch ganz gut...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren