sapling/eden/fs/benchmarks
Xavier Deguillard b7ab05edc5 utils: add an ImmediateFuture type
Summary:
In very hot code path, EdenFS is spending a very large amount of time creating
and destroying folly::Future objects. This is due to the required memory
allocation, as well as the handful of atomics that are happening at creation
time, and these are showing up in EdenFS profiles.

In the steady state, EdenFS actually doesn't need futures, as it often times is
able to service requests from its in-memory caches, in which case we should
ideally just return the value itself and not wrap it in a folly::Future. The
added ImmediateFuture is a step in this direction, as it can hold either an
immediate value, or a folly::SemiFuture, and allow the same API to be used
transparently between these 2.

Reviewed By: genevievehelsel

Differential Revision: D28006802

fbshipit-source-id: 89eaa32e7fa82c44844c4b23c4cb30dbeea46ca8
2021-05-06 10:54:03 -07:00
..
future.cpp utils: add an ImmediateFuture type 2021-05-06 10:54:03 -07:00
get_sha1_thrift.cpp Remove dead includes in eden 2020-10-09 15:25:47 -07:00
open_close_parallel.cpp move benchmarks/ into eden/fs/ 2020-05-04 11:33:12 -07:00
random_writes.cpp add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
stat.cpp add 4k random writes benchmark 2020-07-14 16:13:37 -07:00