Introduction
This is the instrumentation tool developed with Phoenix SDK Pre-release July 2007 for porting
PAMM to windows platform. This tool can work well with the managed binary code written in either C# or managed C++. The instrumented code is supposed to check whether to invoke a garbage collection after a certain amount of new objects are created during the runtime, depending on the current memory usage information acquired from .net virtual machine.
Basic Manual
Acquiring the Code
The code can be checked out through svn with either of the two commands:
Project Directory
The project contains two sub-directory:
- PAMM_Phx is the directory containing the source code of the main instrumentation tool including reading and writing managed binary and code injection.
- PAMM_Handle is a DLL library which will be called by the instrumented binary to check the memory usage and call a garbage collection if necessary.
The already built executables are included in the subdirectory named bin.
Instrumenting a Managed Binary
To use PAMM_Phx to instrument a managed binary application, the Phoenix SDK should be installed on the computer. The package can be downloaded for free from
Microsoft. Make sure you have the PAMM_Phx.exe, PAMM_Handle.dll ,and the application to be instrumented in the same directory to make the tool work properly.
To instrument a managed binary application, simply type in the following instruction in the Phoenix SDK command prompt environment:
After the instrumentation is done, a new binary code will be generated in the name of the application with a "-pamm" suffix attached.
Rebuilding the project
The project is created in Visual Studio 2005 ,and written in C#, a solution file may be found under the two subdirectories respectively. One can simply load the solution file into Visual Studio 2005, or Visual C# Express 2005, make whatever modification, and then rebuild it without any difficulty. Keep in mind that, to successfully rebuild PAMM_Phx, the Phoenix SDK is required and the current release of Phoenix SDK does not support Visual Studio 2008 or Visual C# Express 2008.
Benchmarks
All benchmarks can be acquired by:
- lcscbench - compiler benchmark
- ahcbench - compression benchmark
- SharpSATbench - satisfiability solver benchmark
- mono
- Description: Five of the larger mono test suite programs
- Contents: * casts.cs - Casting test * test-49.cs - Switch operator test - Phase Profile [10 instrs/interval] * test-233.cs - Comparison test - Phase Profile [10 instrs/interval] * test-254.cs - Reflection test * test-269.cs - References test
- Location:
CSharp_Benchmarks/mono/
Topic revision: r5 - 11 Jun 2008 - 03:43:26 -
JiashengShi