Heim > Artikel > Backend-Entwicklung > Fallbericht zur Verwendung von C++ Map und zum Finden von Leistungstests
Vor kurzem führe ich eine Leistungsoptimierung für den Empfehlungsdienst durch. Die Hauptlogik dieses Dienstes besteht darin, offline berechnete Modelldaten zu verwenden, um jede Anzeige in der Anfrage zu bewerten und dann die Sortierergebnisse dieser Anzeigen zurückzugeben Verwendet die Daten in der Anfrage, um eine große Karte zu überprüfen. Der Code ist relativ alt und verwendet boost::unordered_map, um dieses Problem zu lösen , ich habe einige gefunden Vergleich der Drittanbieterbibliothek und der Standardbibliothek
Das Folgende sind die Testergebnisse auf einer AWS r4.xlarge
Maschine (beachten Sie, dass -O2 beim Kompilieren hinzugefügt werden muss):
std::map<int, int> => 51866903 std::unordered_map<int, int> => 3838175 std::unordered_map<int, int, nohashint> => 3508570 std::unordered_map<int, int>(N) => 3804471 boost::unordered_map<int, int> => 3291384 boost::unordered_map<int, int, nohashint> => 3293934 boost::unordered_map<int, int>(N) => 3265856 google::dense_hash_map<int, int> => 785969 google::dense_hash_map<int, int, nohashint> => 784455 google::dense_hash_map<int, int>(N) => 899262 tsl::hopscotch_map<int, int> => 654668 tsl::hopscotch_map<int, int, nohashint> => 680964 tsl::hopscotch_map<int, int>(N) => 663607 tsl::robin_map<int, int> => 406176 tsl::robin_map<int, int, nohashint> => 411358 tsl::robin_map<int, int>(N) => 409993
Sie können sehen, dass die Leistung von tsl::robin_map grundsätzlich das Zehnfache der Leistung von std::unordered_map erreichen kann. Diese Leistung hängt auch vom Betriebssystem und der Bibliotheksversion ab Code und testen Sie es in Ihrer eigenen Umgebung
Wir haben die ursprüngliche boost::unordered_map online durch tsl::robin_map ersetzt und die Gesamtleistung ist natürlich auch mit einigen anderen Optimierungen verbunden gilt als relativ großer Optimierungspunkt
Verwandte Artikel:
MySQL-Such- und Optimierungstest für langsame Abfragen
Lookup-Leistungstest der PHP-Funktion
Ähnliche Videos:
Das obige ist der detaillierte Inhalt vonFallbericht zur Verwendung von C++ Map und zum Finden von Leistungstests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!