Corona® Profiler- A Line-by-Line Analysis of Your Code - New Update

Hello Mo,

Thank you for your suggestions. We will look into it and if possible we will try to get this all available in the next update.

-M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 76901[/import]

Antheor,

You’re welcome and thank you for supporting us as well.

-M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 76902[/import]

Hello Community,

We are having a sale for Profiler! Limited time offer.

Thanks,
-M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 77151[/import]

Cool! You may want to edit your last post by adding a direct link to the site or offer. I know the link and his on the first page of this thread but you know we are all “lazy” :slight_smile:

Good luck!

Mo [import]uid: 49236 topic_id: 17975 reply_id: 77157[/import]

Thank you Mo. We added the link :slight_smile:

-M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 77166[/import]

Hello Community,

Please use the promo code for the discount. New year sale ends today.

Thank you,
-M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 77356[/import]

M.Y.developers,
all i can say is “Great Job!”, without your Profiler i dont know what would i do)
[import]uid: 16142 topic_id: 17975 reply_id: 78597[/import]

Thank you and we appreciate your support. We are glad that profiler works well for you. Please don’t hesitate to let us know if you run into any problems.
-M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 78729[/import]

i have just one question and request:

  1. what does % means alongside ms in report of functions?
    request:
    please add feature to not stop profile if memory peaks in high values, for testing purposes

thanks [import]uid: 16142 topic_id: 17975 reply_id: 78739[/import]

Below is what I get in terminal after about 1 second what does this mean 135 kb is about what I would have expected for memory use based on the graphics loaded. I am using director if that makes a difference

The file sandbox for this project is located at the following folder:
(/Users/rick/Library/Application Support/Corona Simulator/17 second loa timer-3F2986799349242C16CECA1AF5F40935)
profiler started default 3

profiler stopped, change in memory is: 135.44140625 KB (large positive numbers may indicate a memory leak
WARNING: url( /Users/rick/Library/Application Support/Corona Simulator/17 second loa timer-3F2986799349242C16CECA1AF5F40935/Documents/profileTimeline.html ) is not supported by the simulator
[import]uid: 107974 topic_id: 17975 reply_id: 79020[/import]

@darkconsoles: I believe the % numbers are just the percentage of time is taken by each function (or code line) It is basically the size of the boxes. I requested that number to be added it to make it easier to show how each functions use. I guess easier than looking at the actual number. I know I am lazy…
@fastek2000: I will also be interested on how much is to much on what that number is actually is. I started to getting 900K and then using the profiler I was able to bring it back to 25-100K which I assume is related to memory leaks.

Mo.

[import]uid: 49236 topic_id: 17975 reply_id: 79028[/import]

@fastek2000
The change in memory is the difference between the memory when you start profiling to when you stop profiling. You can get a better feel for what is causing this by running the memory timeline (mode=3) and seeing exactly what functions cause the increase in memory. Also, we suggest you set the delay parameter (delay=2000) to bypass the loading stage to get a “steady state” representation of your code execution. If you see that even with a delay you get a steady increase in memory usage then this indicates a memory leak.

Thanks and let us know if you have any more problems.
M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 79040[/import]

@Mo,
Thank you for taking the time to reply to the questions. We appreciate your support.
M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 79041[/import]

@darkconsoles: Mo is correct. The percentages represent the fraction of time taken by that particular subnode.
Say function A takes 20 ms.
Function A calls function B and C.
Function B takes 5 ms and function C takes 15 ms.
Function B would have 25% next to it and function C would have 75%.
Note that this is not representative of the total time but rather a fraction of the parent node (in this case function A)

please add feature to not stop profile if memory peaks in high values, for testing purposes

We are not sure what you mean by this. Can you elaborate? You can increase the profile time if you want to get more data.

-M.Y. Developers
[import]uid: 55057 topic_id: 17975 reply_id: 79038[/import]

@M.Y. Developers

No problem, you are welcome.

I have a follow up if may. I will assume that the number returned after a memory profiling will depend on if you reach the “clean” function of the module you are checking. For instance, I use Director and usual do two profilings.

  • One module at the time (put the profiling code launch in the top of that module) That I way I can see if that module is adding/removing memory correctly. It should get very flat after the first few seconds.

  • Multiple modules test. I put the launch code in main.lua and then switch to a module and then switch out of that module and see if the memory goes up and then down during the switching back. That should test my “clean” function in Director.

hummm…Now my questions:

1- Are the steps above seems correct to you?

2- In reference to that number of K return, what (if any) number would make sense? Would it need to always be negative? How large is too large if the number is positive?

Thanks again for a fantastic product!

Mo. [import]uid: 49236 topic_id: 17975 reply_id: 79044[/import]

@M.Y.developers,

when memory changes in high peaks(director changed scenes or many different things called on screen at the same time) profiler automatically stopping

i’d like a feature to prevent this stop of profiler to further test application [import]uid: 16142 topic_id: 17975 reply_id: 79049[/import]

@darkconsoles

That’s strange, I did not see that effect when I was doing my memory profiling. I had to switch to coding for now. I never seen the profiling stops before the stated time.

Just curious…

Mo [import]uid: 49236 topic_id: 17975 reply_id: 79056[/import]

@Mo
Yes putting the profiler code at the beginning of each module will tell you information about the memory usage during the loading phase of each module. There is an undocumented function you can use called stopDebugger() that you can place at the end of your module. Without stopping profiler at the end however, lua will just march onto the next module and the next.
Your multiple module test is the way to go. Just switch back and forth between each of your director scenes and monitor your memory. It should clue you into what is causing the problem and why.


2- In reference to that number of K return, what (if any) number would make sense? Would it need to always be negative? How large is too large if the number is positive?

There is no one set memory change for any program. If you are loading lots of graphics, sounds, and objects then this will be high. The key is to look at the memory timeline and make sure it is not steadily increasing.

Thanks,
M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 79273[/import]

@Darkconsoles
Please email us a code sample so we can replicate your issue and set about fixing it. Have you tried to turn the profiler off and check for any runtime errors? Please send us a code sample that results in the same error and we will look into it for you. Sorry that you are having problems.
Thanks,
M.Y. Developers [import]uid: 55057 topic_id: 17975 reply_id: 79275[/import]

Thank you for getting back to me. Cool to know about the stopDebug function. I will try and let you know. So you saying to not put the launch code in main.lua but put it on each module then put stopDebug just before the director switch scene command?

Thanks again.

Mo

Ps: can’t wait to start playing with the Corona LAN module when I am done with my current game:) I goof around with the ping pong example and it is very cool! [import]uid: 49236 topic_id: 17975 reply_id: 79285[/import]