|
GC behavior?: msg#01283lang.smalltalk.squeak.general
Relating to the work I'm doing on the Persistence VM, I've encountered a perplexing performance issue relating to incremental GC. In my modified vm/image, which has no compact classes, I'm seeing an interesting performance degradation. Looking a "0 tinyBenchmarks" the number of bytecodes/sec has increased slightly (this is due to some improvements indirectly relating to the removal of compact classes I think)...but, the number of sends/sec has dropped from roughly 2 million to about 750k. Using MessageTally on Ian's CCodeGenerator benchmark, I see some interesting facts about incremental GCs. In the normal vm, I see 1503 IGCs taking 3,308 ms and 9% of the time. There are 150 tenures with 10 GCs/tenure. In the modified vm, I see 6339 IGCs taking 14,443 ms and 23% of the time. There are 173 tenures with 36 GCs/tenure. Both VMs seem show the same time (2ms) per GC...so I don't think having the extra class header has much of an impact on the marking performance. This would seem to indicate that more garbage is being created, but I have no idea how. I guess my question is, can anyone think of how removing compact classes (and having a class header on every object) would have this kind of impact on GC? I've been over the Interpreter changes time and again and can't find anything obvious. I'm thinking it must be something unrelated to the removal of compact classes (perhaps changing the hash to 14 bits is causing some un-anticipated side effect that results in creating more objects). - Stephen
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: [ENH]Keyboard contoll of etoy scripts., Karl Ramberg |
|---|---|
| Next by Date: | [GOODIE] BroomMorph-nk (add selective behavior), Ned Konz |
| Previous by Thread: | [ENH]Keyboard contoll of etoy scripts., Karl Ramberg |
| Next by Thread: | Re: GC behavior?, Tim Rowledge |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |