This repository contains a distributed Call-Graph analysis for C# built on top of The .NET Compiler Platform ("Roslyn") and Orleans - Distributed Virtual Actor Model. The analysis is designed to scale with the size of the input and can be deployed on Microsoft Azure: Cloud Computing Platform & Services. The reliance on a cloud cluster provides a degree of elasticity for CPU, memory, and storage resources.
For more detailed information take a look at our technical report Toward Full Elasticity in Distributed Static Analysis.
The synthetic benchmarks are located inside SyntheticBenchmarks folder. It contains automatically generated projects with 100 - 1,000 - 10,000 - 100,000 and 1,000,000 methods.
We have evaluated our analysis with the following projects taken directly from GitHub.
-
Repository: https://github.com/ShareX/ShareX.git
Branch: master
Commit: 0697738ec89363f092a49b1c6021dc8d6324ee1d -
Repository: https://github.com/icsharpcode/ILSpy.git
Branch: master
Commit: 2726336b3a56d343457b453d9be76b793ea2ebc0 -
Repository: https://github.com/Azure/azure-powershell.git
Branch: dev
Commit: 4485b9b42df290edc19351d134b92e75abb04329
Please make sure you are using the StreamPool branch.
Open ReachingTypeAnalysis.sln and build with Visual Studio. Using Visual Studio 2017 or above is recommended.
Install Visual Studio 2017 with the following workloads:
- ASP.NET and web development
- Azure development