Chronon Technology OverviewWhat does Chronon do? Chronon records every single line of code in your program, from the very begining to the end of the program.
The recording is saved to a file on a disk.
The recording file can then be transferred across machines and also shared among team members.
The Chronon Time Travelling Debugger can then read the recording and allow you to debug the program using its unique abilities. Does that mean the end of non-reproducible bugs?Yes! You no longer need to ‘reproduce’ bugs, since the recording has captured all the execution and thus the bug with it. You can just play back the recording in the debugger and solve the bug. This is specially helpful with hard to reproduce bugs like race conditions, deadlocks, etc. How does Chronon handle local vs remote debugging?The cool thing about Chronon is that you no longer have to think in terms of local vs remote debugging.
The only thing you need to know is that you can record an application, anywhere. The application might be running on your local machine or on a remote machine elsewhere. In either case, you just run your application and interact with it normally. Once you see an error or a bug, just stop the application, transfer the recording to your local dev machine (if it was running remotely) and start debugging! What about logging and all the log statements I put in my program?With the new Post Execution Logging functionality in Chronon, you can add logging after your program’s execution and see results instantly! This also means you can get rid of all that logging statements cluttering up your code, resulting in faster development time.
What will the performance impact be and how much data will be generated for my million line program?The performance impact and amount of data generated depends on the amount of time spent executing your code. You can have a multi-million line JavaEE program which spends most of its time waiting for I/O, so it wont generate much data and will have barely any affect on response time. On the other hand, you can have a small 10 line program that runs a super tight loop at 100% CPU usage. This will generate a lot more data. Chronon is pretty smart about collecting data. During the recording phase it will collect the most minimal amount of data needed, to generate a small, highly compressed data file. Then right before you can start debugging, the recording will be ‘unpacked’ to produce a much larger ‘unpacked recording’ which the time travelling debugger can query to quickly jump to points in time. The ‘unpacking’ needs to be done only once. You can choose to share either the original ‘packed’ recording or the ‘unpacked’ recording with your team members.Is my program actually being ‘run’ when I debug from the Time Travelling Debugger? No. No code of your program is being executed when you replay your recordings. The Chronon debugger reads data from the recording file, almost like reading a database, to reproduce the state of a program at any point in time. Read more: Chronon
QR: