Join Now

Memlib: in-memory performance på den lette måde

by SAS Employee SimonTopp on ‎12-12-2014 06:21 AM (311 Views)

Kører dine SAS programmer for langsomt, og har du brug for et quick-fix?

Så brug RAM i stedet for disk til dine SAS tabeller.


Det er nemt

Du skal bare skrive memlib på dit libname statement. Så bruger SAS RAM i stedet for disk til data. Eksempel:

memlib1.png

Første gang kan være lidt af en skuffelse

Du løber højst sandsynligt ind i en denne fejl:

memlib2.png

Det er der heldigvis råd for. Du skal give din windows bruger ”Lock pages in memory” rettigheder. Se her hvordan: http://support.sas.com/kb/18/274.html.

Det går hurtigt

På min test-laptop tager det 3 sekunder at danne ~800 MB data og indlæse dem igen:

memlib3.png

Med et traditionelt disk libname tager det 10-20 gange længere tid (klassisk SATA harddisk – ej SSD):

memlib4.png

Det er en gammel nyhed

Memlib har været en del af SAS Foundation siden SAS version 9.2.

Out-of-the-box kan man allokere op til 2GB RAM.

Har du brug for mere plads, så skal SAS invocation option MEMMAXSZ sættes for SAS sessionen: http://support.sas.com/documentation/cdl/en/hostwin/67279/HTML/default/viewer.htm#p1r2yc2ga7mfoan1fj...

Læs mere

I SAS 9.x dokumentationen:

http://support.sas.com/documentation/cdl/en/hostwin/67279/HTML/default/viewer.htm#p041tbb02reefnn1jm...


I denne fine artikel fra 2010:

http://support.sas.com/resources/papers/proceedings10/070-2010.pdf