memgraph/tests/benchmark
Teon Banek 88de3422d0 Use stack allocation for cypher function arguments
Summary:
This is a simple change which modifies interface of
awesome_memgraph_functions to accept C-style pointer to array with
count. Doing things this way, allows us to easily try out different
allocation schemes for function arguments. In this diff, we are now
using stack allocation of arguments in a plain fixed size array. This is
done when the number of arguments is small. According to heaptrack, this
small change should yield noticeable improvements to heap usage.

Obviously, this doesn't solve the problem of heap allocations inside
TypedValue arguments themselves. These allocations appear when
std::string and std::vector is used inside TypedValue.

Micro benchmarks show that there is some performance improvement,
mostly around the limits of using array vs std::vector. The improvement is
more noticeable with multiple threads, due to primary gain being in avoiding
calls to memory allocation.

Reviewers: mtomic, msantl, mferencevic

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1581
2018-09-03 11:23:29 +02:00
..
data_structures RingBuffer - buffer on heap instead of stack 2017-11-02 12:07:23 +01:00
query Use stack allocation for cypher function arguments 2018-09-03 11:23:29 +02:00
CMakeLists.txt Remove couple of linking redundancies in CMakeLists 2018-07-30 13:55:30 +02:00
edge_storage.cpp Edge storage benchmark added 2017-09-08 13:12:20 +02:00
expansion.cpp Extract distributed interpretation out of Interpreter 2018-08-27 09:31:39 +02:00
mvcc.cpp Add support for the id function 2018-07-04 22:14:13 +02:00
serialization.cpp Remove boost from the codebase 2018-07-30 15:34:12 +02:00
tx_engine.cpp Benchmark tx::SingleNodeEngine 2018-03-27 15:43:59 +02:00