Skip to content

Profiling Viper

Federico Poli edited this page May 3, 2023 · 6 revisions

Here are some resources to profile Viper, tested on Ubuntu 22.04.

VisualVM

  • VisualVM Can be used to profile Java/Scala code.
  • To profile Silicon it's important to launch VisualVM with something like 1GB of stack space. This can be done by writing visualvm_default_options="$visualvm_default_options -J-Xss1G" into ~/.visualvm/<version>/etc/visualvm.conf.

image

JetBrains dotTrace

  • JetBrains dotTrace can be used to profile dotnet code (i.e. Boogie).
  • Academic licenses are free.

image

Hotspot

  • Hotspot can be used to profile applications composed of multiple processes.
  • It uses perf record under the hood.
  • It can show where Z3 spends its time.

Screenshot from 2023-04-05 16-31-18 Screenshot from 2023-04-05 16-37-00

Other tools

  • The YourKit/JProfiler commercial profilers might be better than VisualVM, but they require a license. They provide free licenses for open-source projects, but only after adding their logo and link on the webpage of the project.