memgraph/tests
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
..
benchmark Use stack allocation for cypher function arguments 2018-09-03 11:23:29 +02:00
concurrent Remove couple of linking redundancies in CMakeLists 2018-07-30 13:55:30 +02:00
distributed Remove raft from the codebase 2018-07-30 14:14:10 +02:00
drivers Integrate driver tests with Apollo 2018-08-22 18:31:37 +02:00
feature_benchmark Add kafka benchmark 2018-08-29 16:35:31 +02:00
integration Revise user visible error messages 2018-08-29 12:58:15 +02:00
macro_benchmark Implement single node two-sided BFS 2018-08-29 12:56:39 +02:00
manual Add magic number to WAL and fix version consistency check 2018-08-29 16:53:10 +02:00
property_based Separate distributed implementation of GraphDbAccessor 2018-07-26 09:16:39 +02:00
public_benchmark Update LDBC query implementation 2018-07-10 10:08:21 +02:00
qa Add support for distributed tck tests 2018-08-01 10:51:49 +02:00
stress Rename bolt::DecodedValue to bolt::Value 2018-07-24 15:59:20 +02:00
unit Split database/counters into single node and distributed 2018-08-31 13:52:36 +02:00
apollo_runs.py Optimize Apollo build process 2018-05-16 14:52:27 +02:00
client-stress.sh Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00
CMakeLists.txt Add kafka benchmark 2018-08-29 16:35:31 +02:00