Frequently Asked Questions
Code Pulse currently supports Java programs, up to Java 9, and .NET Framework programs for CLR versions 2 & 4.
If you would like Code Pulse to support another language/platform, please let us know.
No, you don't need to modify your application. Code Pulse uses an agent to instrument your application at runtime. That means that we don't need you to modify your source or byte code. We automatically inject code in your methods when your classes are being loaded. That's how we know when a method is covered or not. All you need to do is start up your program in a way that loads our agent within its context. You can find instructions on how to do that for Java and .NET Framework applications here.
Code Pulse observes coverage at the method level of detail. So if a method is called, we flag it as being covered. We do realize that a source-line level of monitoring would give more accurate results, but in the current iteration of things we drew the line (no pun intended) at the method level for performance reasons. We will be looking at ways to make the jump to source line level-of-detail in future iterations of Code Pulse.
For JSP files we flag the whole file as covered if it is called. Again, we do realize that line-level would be more accurate and it's something we want to work towards. But we think there's already a lot of value to know what JSP files were called and when until we add support for more detailed coverage information.
When using Code Pulse with Java applications, you set a flag for each part of the application that you want monitored/traced. We try to be smart about it and pick what we think are the most relevant packages or JSP files, but you can easily override that. For .NET applications, the .NET Tracer allows you to specify what should not be traced. You can trace third party dependencies if you choose. Just keep in mind that the more you ask us to trace, the higher the resulting performance impact will be. We suggest that you start small first to get a feel for things and then increase what you trace as you get a better understanding of how much Code Pulse can handle with your application.
The short answer is yes. The long answer is that we've gone out of our way to minimize that performance hit. It's hard to quantify the impact of our instrumentation, but in our measurements, based on Code Pulse v1, we seem to impact Java web applications with a 1.5-2.5x performance slowdown. If you have an application that's CPU-bound, you will most likely notice the performance reduction. As far as memory consumption goes, we do offer settings to reduce our memory footprint, but we suggest that you don't change those unless you're memory constrained. .NET Framework web applications may experience a more significant performance slowdown for initial requests.
Thanks for asking. There's plenty to do. You can help us with our wiki documentation, report bugs, and help us spread the word about Code Pulse! If you're feeling adventurous, you can fork our code and fix any of the current issues, or extend the application as you see fit and submit a pull request.