Skip to content

Commit

Permalink
change shared_ptr<>* to raw pointer
Browse files Browse the repository at this point in the history
Summary:
change shared_ptr<>* to raw pointer in
forwardIndex in RTIndex. This saves 16 bytes per
forward list (decrease from 88 to 72) and translates
to about 4-5% memory saving for RTIndex in ff tier.

Test Plan: unit test

Reviewed By: xliux@fb.com

FB internal diff: D551191
  • Loading branch information
sding authored and tudor committed Aug 26, 2012
1 parent 4a7f5a2 commit 51f060f
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion folly/ConcurrentSkipList.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,11 @@ class ConcurrentSkipList {
// being treated as a scalar in the compiler).
static_assert(MAX_HEIGHT >= 2 && MAX_HEIGHT < 64,
"MAX_HEIGHT can only be in the range of [2, 64)");
typedef detail::SkipListNode<T> NodeType;
typedef std::unique_lock<folly::MicroSpinLock> ScopedLocker;
typedef ConcurrentSkipList<T, Comp, MAX_HEIGHT> SkipListType;

public:
typedef detail::SkipListNode<T> NodeType;
typedef T value_type;
typedef T key_type;

Expand All @@ -170,6 +170,12 @@ class ConcurrentSkipList {
return boost::shared_ptr<SkipListType>(new SkipListType(height));
}

// create a unique_ptr skiplist object with initial head height.
static std::unique_ptr<SkipListType> createRawInstance(int height=1) {
return std::unique_ptr<SkipListType>(new SkipListType(height));
}


//===================================================================
// Below are implementation details.
// Please see ConcurrentSkipList::Accessor for stdlib-like APIs.
Expand Down

0 comments on commit 51f060f

Please sign in to comment.