After multiple hours of stepping through with the debugger, I found two places in the code where a reference is created and isn't cleaned up later. For the most part, the code uses weak references to ensure that objects get cleaned up, so I modified these two spots to use weak references as well.
This appears to work; in my application, memory usage rises initially but stabilizes quickly enough. Before these changes, it went up faster and never stopped.
After multiple hours of stepping through with the debugger, I found two places in the code where a reference is created and isn't cleaned up later. For the most part, the code uses weak references to ensure that objects get cleaned up, so I modified these two spots to use weak references as well.
This appears to work; in my application, memory usage rises initially but stabilizes quickly enough. Before these changes, it went up faster and never stopped.