ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
802
802
EMPFEHLEN
-
02.03.05 21:19 #1
- Registriert seit
- Mar 2002
- Beiträge
- 119
Moin Leute!
Ich hab da mal eine generelle Frage zum guten und performanten Programmieren.
Ich hab' letztens ein sehr großes Programm geschrieben, das jedoch sehr viel CPU Zeit kostet.
Jetzt wollte ich euch fragen, was es denn grundsätzlich für Strukturen gibt die man vermeiden/verwenden sollte, damit man ein schnelles Programm erhält.
MfG
BB
-
02.03.05 21:25 #2
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Erzähl mal was über dein Programm.
Benutzt es Threads?
Läuft es in einer Schleife?
So was.
Wie groß ist denn das Programm/Quellcode?
Könntest ihn ja mal gezippt als Anhang anhängen.
mfg
umbrasaxum
-
02.03.05 21:30 #3
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Naja also ein Allgemeinrezept gibt es da natürlich nicht. Wobei man schon auf ein paar Dinge achten kann:
- Wenige Kopien verwenden, stattdessen Referenzen oder Zeiger
- Speicher dynamisch reservieren (geeignete Vectoren, Collections verwenden)
- Speicher so bald als Möglich wieder freigeben.
- Pointerarithmetik verwenden
- Optimierung durch Compiler
- Performantere Compiler (z.B. den von Intel) verwenden
So das sollen nur mal ein paar Faktoren sein, natürlich gibt es da noch genügend andere, gerade im mathematischen Bereich oder im Grafischen Bereich.
Man sollte auch versuchen weit verbreitete, bewährte Algorithmen zu verwenden, z.B. bei Sortierung, Grafikbearbeitung, 3D-Programmierung.
Du kannst auch mit Profilingprogrammen, die Flaschenhälse deiner Anwendung herausfinden und dort an Optimierung ansetzen.
Also wie du siehst gibt es da viele Lösungsansätze.
Gruß Danielwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
-
02.03.05 21:40 #4
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Ich hatte auch mal ein Tutorial zur Codeoptimierung gelesen, weiss aber nciht mehr wo.
Aber es gibt sowas und es sollte sich auch per google finden lassen.
mfg
umbrasaxum
-
Was auch sehr viel bringen kann sind sachen wie:
- Lazy Evaluation ( verzögerte Berechnung)
- Lazy Fetching ( verzögertes Holen von Werten)
- Lazy Expression Evaluation ( Verzögerte Auswertung von Ausdrücken)
Und im allgemeinen alles was mit lazy zu tun hat
Grundvorraussetzung dafür ist nat der sinnvolle, und brauchbare Einsatz
dieser techniken.
siehe dazu:
http://en.wikipedia.org/wiki/Lazy_Evaluation
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
03.03.05 22:18 #6
- Registriert seit
- Mar 2002
- Beiträge
- 119
Nabend beisammen,
das Programm direkt werd ich leider nicht mit anhängen können, aber ich kann euch etwas darüber erzählen.
Also in der Main Methode werden 2 Threads geöffnet und in einem dieser Threads wird wiederum ein Thread gestartet.
Die Aufgabe der Threads ist es Bilddaten binär zu empfangen/senden und Benutzereingaben zu empfangen
2 dieser Threads kommunizieren miteinander indem eine Art Verbindungsklasse geschrieben wurde.
Beide Objekte haben nicht gleichzeitig Zugriff, sondern nur dann wenn der eine Thread mit seiner Aufgabe fertig ist.
Leider kann ich euch keine genaueren Angaben machen.
Wie dem auch sei, eigendlich war meine Frage von allgemeiner Natur, wollte also quasi wissen, was man generell vermeiden sollte.
Also soetwas wie:
while (true)
{
// Do nothing
}
MfG
BB
Ähnliche Themen
-
MS SQL Server und Performance steigern bei SQL-Abfrage
Von Lautsprecher im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 26.09.06, 13:19 -
Perfomance steigern
Von tobee im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 30.08.06, 13:00 -
Formularverarbeitung Effizienz steigern
Von sirvival im Forum PHPAntworten: 2Letzter Beitrag: 28.02.06, 10:56 -
Logik-Denkleistung erheblich steigern?
Von Claus1985 im Forum Ausbildung & BerufAntworten: 7Letzter Beitrag: 23.04.05, 23:16 -
Windows Performance steigern
Von digiTAL im Forum Microsoft WindowsAntworten: 7Letzter Beitrag: 15.01.05, 14:50





Zitieren
Login






