position.cpp
auf.#defines
sollten auch vor der Compilierung gesetzt/überprüft werden. Welche das sind, lässt sich dem makefile
entnehmen (die zu setzenden Optionen fangen mit -D
an und können am einfachsten unter Projekt-Optionen als Parameter des C++Compilers definiert werden - einfach als Liste eintragen).bench
testen.Visual Studio 2010
möglicherweise die schnellere Exe.Visual Studio 2010
möglicherweise die schnellere Exe.Also der Anfang getreu dem preußischen Programmier-Reglement geht so:
1. Hinsetzen
2. PC anschalten
3. ...
Ich überspringe jetzt einige dutzend Punkte und komme zu
42. DevCpp starten
43. Menü Datei->Neu->Projekt
43a. Tabulator Basic->Leeres Projekt (- zu dem Icon muss man abwärts scrollen)
45b. Projektsprache C++
45c. Projektnamen eingeben bspw. Meisterstock
46. DevCpp möchte die Projektdatei Meisterstock.dev abspeichern -> entsprechendes Verzeichnis angeben (am besten vorher eines anlegen und den Sourcecode da rein kopieren)
47. im Projektfenster links befindet sich jetzt das Projekt Meisterstock. Mit Doppelklick öffnen.
47a. Rechtsklick auf Datei Unbenanntx
47b. Im Kontextmenü Datei entfernen wählen.
48. Menü Werkzeuge->Editor
48a. Tabulator Code Vervollständigung
48b. Code-Vervollständigung einschalten ausschalten (sonst zickt die Oberfläche wegen position.cpp)
48c. Dialog verlassen mit Ok
49. Menü Projekt->Zum Projekt hinzufügen wählen
50. Im Sourcecodeverzeichnis alle Dateien mit den Endungen .cpp und .h auswählen (Tip: Nach Typ sortieren lassen)
51. F11 drücken oder Menü Ausführen->Kompilieren + Ausführen
Der Code sollte fehlerfrei kompiliert und das fertige Programm gestartet werden.
52. in das gestartete Meisterstock.exe bench eingeben und Werte merken und mit quit und 2x Enter schließen
Jetzt kommen wir zu den Optimierungen:
53. Menü Projekt->Projekt Optionen
53a. Tabulator Compiler->Tabulator Code-Erzeugung
53a1. Opionen Zeile 1 (-march) und 3 (-mx) nach Zielprozessor wählen; Zeile 2 ignorieren; Optimierungslevel High oder Highest wählen (highest enthält auch potentiell unsichere Optimierungen)
53a2. Ob man eine 32- oder 64-Bit exe erzeugt, wählt man mit Zeile 5
53b. Tabulator Compiler->Linker: Zeile 5 (-s) Yes setzen. Das macht die Exe klein.
Es gibt ein paar Steuerungsdefinitionen im Quellcode, mit denen man außerdem Optimierungen vornehmen kann.
54.Tabulator Parameter (in der oberen Tabulatorenreihe der Projektoptionen)
54a. In der Spalte C++-Compiler kann man folgende #defines vornehmen, die sonst im Quellcode erfolgen müssten
-DNDEBUG
-DUSE_POPCNT
-DIS_64BIT
-DUSE_BSFQ
-DUSE_PREFETCH
Die Erklärungen zu den Steuerungsvariablen sind in Datei makefile gegeben. Wichtig: Keine Leerzeichen. Will man einzelne #defines abwählen einfach anderen Namen geben. Aus -DIS_64BIT könnte -DxIS_64BIT werden. Aber keine Leerzeichen verwenden!
54b. Dialog mit Ok schließen.
55. F12 oder Menü Ausführen->Alles erneuern
56. F10 oder Menü Ausführen->Ausführen
57. in das gestartete Meisterstock.exe bench eingeben und Werte mit den gemerkten vom nicht optimierten Programm vergleichen. Mit quit und 2x Enter schließen.
position.cpp
zum Absturz von DevCpp führt. Zum Kompilieren komme ich dann gar nicht mehr. x32 x64
GCC mit DevCpp-GUI 2824 1998
GCC mit make und makefile 2762 1967
Visual Studio C++ 2010 3776 2700
x32 x64
GCC mit DevCpp-GUI 2824 1998
GCC mit make und makefile 2762 1967
Visual Studio C++ 2010 3776 2700
benchmark.cpp
beschrieben.Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill