speicher per malloc anfordern. wie performant?
-
hallo,
ich arbeite zur zeit an einem größeren c-projekt (gnu linux, libc). das programm (server-applikation) soll möglichst kostenminimal also performant sein.
grundsätzlich werden an jede funktion zeiger auf strukturen übergeben, die alle wichtigen variablen enthalten, auch zeiger auf puffer, die beim programmstart genau einmal angelegt werden.
der übersicht halber haben die funktionen auch lokale puffer, die aber bei jedem funktionsaufruf per malloc alloziert werden (und beim beenden natürlich wieder zerstört).
einige funktionen werden in der sekunde bis zu 344 mal aufgerufen.meine frage: lohnt es sich auf die übersicht zu verzichten und die lokalen puffer in die "globale" struktur "auszulagern". sprich wie "teuer" ist eine speicher-allokation per malloc auf einer (intel) x86 cpu?
danke!!
gruß, marco
-
malloc hat nichts mit prozessoren zu tun.
die malloc implementation haengt von der stdlib implementation sowie von den system api funktionen ab.schreib dein programm, dann benchmarke die mallocs.
wenn die zu langsam sind, dann baue einen transparenten ersatz fuer malloc, also ein eigenes malloc(), dass wie original malloc() funktioniert, nur mit der inneren logik, die du dir ausdenkst.