vmware / differential-datalog

DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
MIT License
1.35k stars 117 forks source link

Where can I find information about profiler help? #1177

Open bluegodg opened 2 months ago

bluegodg commented 2 months ago

I am conducting an analysis on the memory profile and time profile of ddlog, and I noticed a link to the profiler help in the wiki: https://github.com/vmware/differential-datalog/wiki/Profiler-Help But I found no relevant content in the link. Where can I find Profile Help related information?

ryzhyk commented 2 months ago

Hi @bluegodg ! Unfortunately, we never wrote those docs. The project is no longer maintained, but you can find some profiler docs here.

bluegodg commented 1 month ago

Alright, thanks for your response. I'm wondering now, what is the unit of the size value in the "Arrange size profile"? Is it in bytes?

ryzhyk commented 1 month ago

It's the number of records. I don't think we had a way to report size in bytes in ddlog.

bluegodg commented 1 month ago

Can I obtain the size of byte units by simply adding up the byte sizes ofeach field type in the Record?

mihaibudiu commented 1 month ago

In Rust that's only an approximation. There is a sizeof crate which is more precise

ryzhyk commented 1 month ago

Can I obtain the size of byte units by simply adding up the byte sizes ofeach field type in the Record?

There's also per-record metadata overhead whose size can vary across different collections. 32 bytes is probably a reasonable ballpark estimate.