Hi,
ich habe ein mittelgroßes performance problem bei meinem Programm..
Ich habe bisher meine funktionen immer ganz normal im header deklariert und in der cpp datei dann implementiert, nur jetzt habe ich das problem, dass hierbei scheinbar ein gewisser overhad entsteht wenn man die funktion extrem oft benutzt..
Ich rufe eine funktion z.B. mehrere millionen mal auf und habe dabei die geschwindigkeit gemessen. Die variante wo die implementation in der cpp datei steht braucht ca. 300ms länger als die, wo es im Header implementiert ist (inline).
Gut, man kann jetzt sagen "300ms.. ist doch okay..?", allerdings brauche ich jede millisekunde
Das problem an der geschichte ist jetzt, ich möchte ungern alle möglichen funktionen im header implementieren.. bei einzeilern is das ja kein thema, aber bei größeren funktionen wird das zum einen unübersichtlich und zum anderen wird jedesmal alles neu compiliert nur weil man eine kleinigkeit ändert..
Gibt es evtl irgendeine möglichkeit die funktionen nach wie vor in der cpp datei zu implementieren, aber trotzdem die performance von inline funktionen zu bekommen? Also so vonwegen das der compiler (GCC 4.1) die funktionen selbst in inline "verwandelt"? Allerdings müßte er dann ja beim einbinden des headers wissen wo (in welcher cpp datei) sie definiert ist.. geht das? (Bei mir heißen cpp und header immer gleich)
Ich weiß die frage ist evtl merkwürdig *g*
Aya~