2016-07-11 25 views
3

Ich bin ein Anfänger zu lua. Ich versuche, die Speichernutzung meiner Anwendung zu profilieren. Wenn ich collectgarbage ('count') wiederholt von lua REPL anrufe, steigt der zurückgegebene Wert weiter an.collectgarbage ('count') erhöht die Speicherauslastung in lua

th> collectgarbage() 
0 
                     [0.0018s] 
th> collectgarbage('count') 
856.8408203125 
                     [0.0001s] 
th> collectgarbage('count') 
858.669921875 
                     [0.0001s] 
th> collectgarbage('count') 
860.345703125 
                     [0.0000s] 
th> collectgarbage('count') 
862.171875 
                     [0.0000s] 

Gibt es einen bestimmten Grund dafür?

+1

IMO, 'collectgarbage ('count')' reserviert keinen Speicher vom Heap, aber das Konvertieren einer Zahl in einen String und das Ausdrucken in stdout macht es sicher. –

+0

Das macht Sinn. Können wir trotzdem feststellen, dass dies der Grund für die zusätzliche Speichernutzung ist? –

+0

'print (collectgarbage ('count'), collectgarbage ('count')) gibt zwei gleiche Werte aus. Oder Sie können dies in REPL eingeben: 'th> collectgarbage ('count'), collectgarbage ('count')' –

Antwort

1

Dank Bolas und @egor skriptunoff sagte oben @nicol,

Dies ist Konvertierungsspeicher einen lua-Code, da die Zusammenstellung und auch aufgrund Zeichenfolge zuordnet.