Corona® Profiler still supported?

Hi, sorry for the non Glider question. I was wondering if Corona® Profiler is still alive & well. I want to buy & use it but didn’t want to go for something that might have been abandoned for other priorities. Thank you. 

Hello Ksan,

Thanks for your interest. Go ahead and purchase it, if you do not like it we will give you a full refund. We have plans to get profiler integrated into Glider in the future, everyone who purchased profiler will get a $10 discount when the profiler for glider module is available. 

Regards,

M.Y. Developers

Sure. Will do. Question though is whether it still works with the latest daily builds. Thanks

Ok. Took a chance and bought it. I am in the process of preparing my 1st app for release. It has many many storyboard scenes and is what you might call a business app with tableviews, sql calls and what not. While it works fine I decided to review my variable use (local vs global) and Mode 4 of the profiler is a great help to point out to me what variables are in global scope. Its amazing how things creep in there without me intending that way. This tool will help me a lot in cleaning up. 

So here’s my plan.

Place profiler.fullSnapshot()  at the point where main.lua calls out to the first storyboard scene after doing all the prep work. 

Then place a profiler.diffSnapshot() at the enterScene and exitScene functions of each one of my scenes.

This might be an overkill but I will not need to do this many times… Hopefully. Would you agree in this approach or based on your experience with this tool would you recommend another use profile?

Thanks much for your help. 

Hello Ksan,

Sounds like a great plan. It might make more sense to put a diffsnapshot only at the enterscene function. Here is why:

  1. main method ->full snapshot

  2. enterscene 1 -> diff snapshot (wont be much difference from full snapshot)

  3. exit the scene

  4. enterscene 1 -> diff snapshot (you will get memory allocations)

  5. exit the scene

  6. enterscene 1 -> diff snapshot (in theory you should not have any more allocations)

repeat a few times to see what increases in steady state.

Having a diffSnapshot in exit scene is probably unnecessary, it will prob just add noise (you will see tons of deallocations). 

Just be aware that you need to “hit” each diffSnapshot a few times (at least like 5 times) to see if you have excess memory allocations in its steady state. You will have  extra objects floating around after the first diff Snapshot due to normal memory allocation. We suggest you profile one scene at a time, try to isolate as much as possible. And remember, unless you are making a web server your app does not have to be 100% leak free.

Regards,

M.Y. Developers

Great suggestions! Thank you very much. Will try and see how I go. For now the first order of business is to chase unintentional globals in to local zone… Even for that alone I think the tool is worth its cost! Good job. Please don’t abandon it. 

Hello Ksan,

We suggest you give Glider a try. It will highlight globals for you in green. You can also ctrl-click on globals to go to its declaration and run a  usage finder to see where the global is used in your project.

Regards,

M.Y. Developers

Hello Ksan,

Thanks for your interest. Go ahead and purchase it, if you do not like it we will give you a full refund. We have plans to get profiler integrated into Glider in the future, everyone who purchased profiler will get a $10 discount when the profiler for glider module is available. 

Regards,

M.Y. Developers

Sure. Will do. Question though is whether it still works with the latest daily builds. Thanks

Ok. Took a chance and bought it. I am in the process of preparing my 1st app for release. It has many many storyboard scenes and is what you might call a business app with tableviews, sql calls and what not. While it works fine I decided to review my variable use (local vs global) and Mode 4 of the profiler is a great help to point out to me what variables are in global scope. Its amazing how things creep in there without me intending that way. This tool will help me a lot in cleaning up. 

So here’s my plan.

Place profiler.fullSnapshot()  at the point where main.lua calls out to the first storyboard scene after doing all the prep work. 

Then place a profiler.diffSnapshot() at the enterScene and exitScene functions of each one of my scenes.

This might be an overkill but I will not need to do this many times… Hopefully. Would you agree in this approach or based on your experience with this tool would you recommend another use profile?

Thanks much for your help. 

Hello Ksan,

Sounds like a great plan. It might make more sense to put a diffsnapshot only at the enterscene function. Here is why:

  1. main method ->full snapshot

  2. enterscene 1 -> diff snapshot (wont be much difference from full snapshot)

  3. exit the scene

  4. enterscene 1 -> diff snapshot (you will get memory allocations)

  5. exit the scene

  6. enterscene 1 -> diff snapshot (in theory you should not have any more allocations)

repeat a few times to see what increases in steady state.

Having a diffSnapshot in exit scene is probably unnecessary, it will prob just add noise (you will see tons of deallocations). 

Just be aware that you need to “hit” each diffSnapshot a few times (at least like 5 times) to see if you have excess memory allocations in its steady state. You will have  extra objects floating around after the first diff Snapshot due to normal memory allocation. We suggest you profile one scene at a time, try to isolate as much as possible. And remember, unless you are making a web server your app does not have to be 100% leak free.

Regards,

M.Y. Developers

Great suggestions! Thank you very much. Will try and see how I go. For now the first order of business is to chase unintentional globals in to local zone… Even for that alone I think the tool is worth its cost! Good job. Please don’t abandon it. 

Hello Ksan,

We suggest you give Glider a try. It will highlight globals for you in green. You can also ctrl-click on globals to go to its declaration and run a  usage finder to see where the global is used in your project.

Regards,

M.Y. Developers