Patent Document ID: 8850402
Application ID: 12470705
Patent Flag: 1

Claim One:
1. A method for determining performance of a software entity, the method comprising: allowing extended execution of the software entity without monitoring code; sampling behavior data for the software entity over a period of time, comprising: injecting monitoring code at one or more pre-selected locations into the software entity to instrument the software entity; generating one or more representative samples of typical behavior data by executing the monitoring code in its entirety; and collecting the one or more representative samples of typical behavior data over the period of time; removing the monitoring code; repeatedly performing iterations of the allowing extended execution and the sampling behavior data steps for ensuring the one or more collected samples of typical behavior data is sufficient for diagnosing performance of the software entity, the ensuring the collected samples of typical behavior data is sufficient comprising: profiling the representative samples of typical behavior data to ensure randomness; using regular and irregular intervals to collect the samples of typical behavior data; and maintaining a ratio of execution of instances of the software entity without the monitoring code to execution of instances of the software entity with the monitoring code, wherein the ratio comprises at least 10:1 or higher instances of execution; and modifying the monitoring code between iterations in dependence upon the collected performance data samples; wherein a first, non-instrumented instance of the software is mapped to a first memory space using virtual memory techniques and a second, instrumented instance of the software with the monitoring code added is mapped to a second memory space using virtual memory techniques, wherein the first non-instrumented instance and the second instrumented instance have a same virtual address bur different physical addresses such that toggling between the first non-instrumented instance and the second instrumented instance may be effected by changing the mapping.