github vmware/differential-datalog v1.0.0
DDlog v1.0.0

latest releases: v1.2.3, v1.2.2, v1.2.1...
3 years ago

[1.0.0] - Nov 9, 2021

Self-profiler revamp

The self-profiler remains a useful tool for troubleshooting DDlog performance
issues. It runs with low overhead, allows enabling/disabling CPU and change
profiling at runtime to only instrument parts of the program, and because it is
integrated into the DDlog runtime it can precisely match each DD operator to the
corresponding DDlog operator. DDshow does not currently have these features.

In this release we revamp the self profiler to improve its ergonomics. The new
self-profiler has the following features:

  • Produces profiles in the form of interactive HTML tables. Each
    row in the table represents a DD operator and contains operator
    description, e.g., "Arrange relation 'Rel1' by 'x,y,z'" along with
    links to one or more source code location that this operator
    corresponds to (e.g., all locations where this specific arrangement
    of 'Rel1' is used).

  • The new dump_profile API dumps the profile into an HTML file
    on the disk instead of returning it as a string. All profiles
    generated by the same process are generated in the same folder, even
    if the process creates multiple instances of DDlog. This folder
    also contains a complete snapshot of all DDlog code in the
    program, so that the profiler can show program sources even when
    the program does not run on the same system where it was compiled.

  • Internally, the self-profiler represents profiles using a
    well-defined JSON format. New APIs were added to extract
    each of the four profiles currently supported by DDlog (arrangement
    size profile, peak arrangement size profile, change profile, and
    CPU profile) in the JSON format, for automatic processing by
    third-party tools.

Don't miss a new differential-datalog release

NewReleases is sending notifications on new releases.