The graph traversal benchmark was to plain old C. It ran 7X slower and used 63% more memory. Once again, it's L2 cache performance that
makes the difference.
DataDraw has been extensively benchmarked against the #1 rival for EDA software development: C++ using the Standard Template Library. In short DataDraw smokes C++/STL. In a new benchmark, simple depth-first graph traversal, the graph_benchmark example shows DataDraw runs over 15X faster than the C++/STL version. It also uses less than half the memory when compiled in 64-bit mode. The speed difference is due to a 16.7X better L2 cache hit rate for the DataDraw version. Check out the examples directory for current benchmarks.
If you think your C++ STL-based code is fast, you might want to reexamine your code. New benchmarks show DataDraw ordered lists perform much faster than GNU C++ multisets.
On a new benchmark of DataDraw ordered lists vs C++ STL multisets, DataDraw narrowly wins on cache-speed-limited random insert/delete (29 seconds vs 31), but beats C++ by 63% on ordered traversals. For 50 loops over 5 million nodes, DataDraw runs in 6.35 seconds, while STL requires 10.35. The DataDraw version required only 60% as much memory. The benchmarks ran on Ubuntu x64 installed on a 2.0 GHz Core Duo Dell Inspiron 9400 with 2 gig of RAM.... read more
Thanks to Richard Prescott, DataDraw now supports ordered list relationships. Currently based on the very cool treap dynamically balanced binary trees, ordered_lists are as fast as you would expect from DataDraw.
Update: Treaps were benchmarked to red-black trees and found to be slower by about 30% for iteratively inserting and deleting random data. Therefore, treaps have been replaced with red-black trees.
The new DataView schema generator automatically creates high quality schema diagrams from your database description files. These make excellent documentation, help programmers understand your data structures, and eliminate the need to create these diagrams by hand.
Class diagrams, or "schemas", are a great way to visualize complex class relationships. Murali and I have implemented the first version of DataView, an automatic class diagram generator, which reads your database description files and creates a Postscript diagram of class relationships.
Users of DataDraw2.0 who miss class diagrams will find these diagrams easy to read, eliminating the need for a class diagram editor.... read more
New features include arbitrary keys for hash table relationships, sparse data support to save memory, and generic object attributes for attaching runtime data to objects. See the manual for complete documentation on these new features.
On a recent EDA 64-bit benchmark, ViASIC showed that DataDraw reduced a 3.8 gigabyte memory footprint down to 2.2 gigabytes for the same design. This is only 58% as much memory as a typical 64-bit EDA application would require for the same design.
64-bit EDA applications generally represent object references with 64-bit pointers. DataDraw can support over 4 billion objects of a given class using 32-bit references instead. Since object references typically dominate memory in EDA applications, the savings can be nearly 2X.
ViASIC's place and route EDA tool suite, ViaPath, has been converted to DataDraw3.0 for all data structures. This application is > 500K lines of C code. ViaPath uses 42 distinct volatile DataDraw databases throughout the system, and 340 distinct classes. There are also 95 class extensions.
With this successful conversion, DataDraw3.0 volatile databases are now highly stable, with few remaining bugs in the system.
Including persistence, infinite undo/redo, both binary and ASCII load/save, and the database manager.
And, it kind of even works! Very cool... Check the datadraw.sf.net web page for basic info, and the manual for an in depth description.
After living with DataDraw2.0 for over 10 years, DataDraw3.0 has finally been released. DataDrwa3.0 builds on the ultra-high speed database development experience gained over DataDraw's 14 year history, with well over 1 million lines of DataDraw supported code in use within the EDA industry. Check out the new manual! DataDraw is finally well documented.