Forum: Compiler & IDEs Kompilieren dauert zu lange!!


von Karl (Gast)


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

von Fabian H. (hdr)


Lesenswert?

Kompilierst Du von einem / auf einem Netzlaufwerk?

von Karl (Gast)


Lesenswert?

Nein, alles lokal da...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Karl schrieb:
> 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 ...

Was magst Du damit meinen? Was ist für Dich im Zusammenhang mit dem 
Compilieren von Programmen "einlesen und rechnen"?

von Norbert (Gast)


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!

von Sven P. (Gast)


Lesenswert?

Eventuell dicke C++-Header dabei?

von Karl (Gast)


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...

von Karl (Gast)


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
}

von Norbert (Gast)


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?

von Karl (Gast)


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?

von Norbert (Gast)


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?

von Karl (Gast)


Lesenswert?

Norbert schrieb:
> Wie sieht's denn direkt von der Kommandozeile ohne Codeblocks aus?

Leider schlecht, sowohl mit der powershell via gccca 8 Sekunden bei 
einem anderen kleineren Programm.
Aber jetzt komme ich gerade drauf, dass nur das Starten der Exe datei so 
lange dauert.

von Karl (Gast)


Lesenswert?

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

von Norbert (Gast)


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. ;-)

von Michael S. (msb)


Lesenswert?

Ich nehme an die Harddisk ist zumindest an einigen Stellen kaputt, z.B. 
wo der der Compiler gespeichert ist.

von Karl (Gast)


Angehängte Dateien:

Lesenswert?

Norbert schrieb:
> Eventuell von 32bit auf 64bit Windows8 gewechselt?

siehe Bild

Norbert schrieb:
> Hmmm, braucht der gcc unter Widows immer noch die MinGW / cygwin
> Umgebung?

Ja!

von Karl (Gast)


Lesenswert?

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

von fonsana (Gast)


Lesenswert?

Norbert schrieb:
> Wir reden hier ja nicht von Raumfahrttechnik. ;-)

Stimmt.
Sondern von Window$!

fonsana

von fonsana (Gast)


Lesenswert?

Karl schrieb:
> Jedoch
> wenn ich schreibe: prog.exe dann dauert es und dauert und irgendwann
> startet es

Dann schreib das nicht.

fonsana

von Karl (Gast)


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

von Karl (Gast)


Lesenswert?

fonsana schrieb:
> Dann schreib das nicht.

Wie soll ich das Programm denn sonst starten?

von Knigge (Gast)


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?

von Karl (Gast)


Lesenswert?

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

Ich habe Kaspersky Internez Security

von Norbert (Gast)


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...

von Karl (Gast)


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

von Karl (Gast)


Lesenswert?

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!

von Karl (Gast)


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?

von (prx) A. K. (prx)


Lesenswert?

Das ist wohl die neue Strategie bei der Abwehr von Trojanern: Den 
Rechner so langsam und damit unattraktiv zu machen, dass sich die 
Schädlinge mit Grausen abwenden und woanders ihr Heil suchen.

von Norbert (Gast)


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...

von Karl (Gast)


Angehängte Dateien:

Lesenswert?

Welcher dieser Schütze(LOL) muss ich denn deaktivieren? 
Programmkontrolle hat nicht funktioniert...

von (prx) A. K. (prx)


Lesenswert?

Norbert schrieb:
> * Das cloud-basierte Kaspersky Security Network sammelt weltweit Daten
> von Millionen teilnehmender Benutzersysteme

Klingt nach NSA auf Russisch. ;-)

von Karl (Gast)


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?

von (prx) A. K. (prx)


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.

von Karl (Gast)


Lesenswert?

Hahahaha ich deinstallier es eh gerade...
avg wird in zukunft die Aufgabe übernehmen! Ich hoffe es enttäuscht mich 
nicht. Irgendwelche besseren alternativen eurerseits?

von bluppdidupp (Gast)


Lesenswert?

Vermutlich wurde SmartScreen durch die Firewall ausgebremst:
http://en.wikipedia.org/wiki/SmartScreen#SmartScreen_in_Windows_8

von noname (Gast)


Lesenswert?

Karl schrieb:
> Irgendwelche besseren alternativen eurerseits?
klar: www.centos.org

von Le X. (lex_91)


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 :-)

von (prx) A. K. (prx)


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.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

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...

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

von Brathähnchen (Gast)


Lesenswert?

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

Besser:

Bau Dir eine VM und mache darin Deine Software-Entwicklung, ohne 
Netzwerkanbindung und natürlich dann auch ohne Virenscanner o.ä.

von Ich (Gast)


Lesenswert?

A. K. schrieb:
> Aber die Viren und
> Trojaner stört es leider auch weniger, entsprechenden Tests zufolge.
>
Quelle?

von Arc N. (arc)


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...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.