Różnica w make_shared i normal shared_ptr w C ++

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo");
std::shared_ptr<Object> p2(new Object("foo"));

Wiele postów google i stackoverflow znajduje się w tym miejscu, ale nie jestem w stanie zrozumieć dlaczegomake_shared jest bardziej wydajny niż bezpośrednie użycieshared_ptr.

Czy ktoś może mi wyjaśnić sekwencję tworzonych obiektów i operacji wykonywanych przez obie, aby móc zrozumieć, jakmake_shared jest wydajny. Podałem jeden przykład powyżej w celach informacyjnych.

questionAnswers(7)

yourAnswerToTheQuestion