one of my clients is experiencing a delay in the operations of my app. I.e. while using the scanner, the app suddenly takes much longer to process each scan. My logs seem to indicate that my code which runs during each scan is not using an unreasonable amount of time to process, but what I've run into are these two lines which can be found after each scan:
I 04/24/2020 15:57:00:018 df3d2930 HttpServer| GC Start.
I 04/24/2020 15:57:00:681 df3d2930 HttpServer| GC End.
I assume that df3d2930 is the thread id? The same id appears in log entries for the code which is executed when the user triggers a scan, which indicates that this happens on the UI thread (but please correct me if I'm assuming incorrectly).
These log lines seem to indicate that the garbage collection is taking around 0.6 to 0.7 seconds.
Is this a normal behaviour? If not, is this an indication that there is a memory leak in my app, or that something else is wrong? Can I control at which times the garbage collection occurs?
Post by Alex Epifanov on Apr 28, 2020 14:43:08 GMT
You are correct, df3d2930 is the thread ID. Hard to tell if GC is a reason of delay, it is quiet a long time. It may require to enable full verbosity in rhoconfig, and add some traces in your app Ruby code. Http server runs in a separate thread, not UI one, in fact it runs in a same thread that Ruby VM. I will also email you about our current special offering for services, which may interest you. Regards, Alex.
I have had similar issues, even by opening/closing the camera without even taking pictures there was a slowdown in the app and an eventual crash. Was worse on iOS devices. I was also able to replicate this using the kitchensink demo code.