I run a pretty old machine here too (+10years), it has 16GB of ram but I find superdirt/sc sample loading will often just push it over the edge into swap... which requires meticulous sample set management.
This has made a huge difference to me ... it's made possible the use of some much lower spec machines for teaching/loaning, it's really opened up a lot of possibilities - thanks again 
edit: one thing I will note, is it doesn't seem to handle missing samples too gracefully now:
ERROR: Message 'at' not understood.
RECEIVER:
nil
ARGS:
Symbol 'notYetRead'
PROTECTED CALL STACK:
Meta_MethodError:new 0x5635fca72b40
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = nil
Meta_DoesNotUnderstandError:new 0x5635fca74b00
arg this = DoesNotUnderstandError
arg receiver = nil
arg selector = at
arg args = [ notYetRead ]
Object:doesNotUnderstand 0x5635fc5cec00
arg this = nil
arg selector = at
arg args = nil
DirtSoundLibrary:getEvent 0x5635fd3f8000
arg this = a DirtSoundLibrary
arg name = lidvox
arg index = 9.0
var allEvents = nil
var event = nil
DirtEvent:mergeSoundEvent 0x5635fca35cc0
arg this = a DirtEvent
var soundEvent = nil
a FunctionDef 0x5635fca351c0
sourceCode = "<an open Function>"
a FunctionDef 0x5635fd813fc0
sourceCode = "<an open Function>"
Function:prTry 0x5635fcd09600
arg this = a Function
var result = nil
var thread = a Thread
var next = nil
var wasInProtectedFunc = false
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Function:protect
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
Environment:use
arg this = <instance of Event>
arg function = <instance of Function>
var result = nil
var saveEnvir = <instance of Environment>
DirtEvent:play
arg this = <instance of DirtEvent>
OSCFuncBothMessageMatcher:value
arg this = <instance of OSCFuncBothMessageMatcher>
arg msg = [*13]
arg time = 395.80448335991
arg testAddr = <instance of NetAddr>
arg testRecvPort = 57120
OSCMessageDispatcher:value
arg this = <instance of OSCMessageDispatcher>
arg msg = [*13]
arg time = 395.80448335991
arg addr = <instance of NetAddr>
arg recvPort = 57120
Main:recvOSCmessage
arg this = <instance of Main>
arg time = 395.80448335991
arg replyAddr = <instance of NetAddr>
arg recvPort = 57120
arg msg = [*13]
^^ The preceding error dump is for ERROR: Message 'at' not understood.
RECEIVER: nil