// Collection of dex references that is more memory efficient than a vector of <dex, index> pairs. // Also allows quick lookups of all of the references for a single dex. template <class IndexType, template<typename Type> class Allocator> class DexReferenceCollection { public: using VectorAllocator = Allocator<IndexType>; using IndexVector = std::vector<IndexType, VectorAllocator>; using MapAllocator = Allocator<std::pair<const DexFile*, IndexVector>>; using DexFileMap = std::map< const DexFile*,
IndexVector,
std::less<const DexFile*>,
Allocator<std::pair<const DexFile* const, IndexVector>>>;
ALWAYS_INLINE IndexVector* GetOrInsertVector(const DexFile* dex) { // Optimize for adding to same vector in succession, the cached dex file and vector aims to // prevent map lookups. if (UNLIKELY(current_dex_file_ != dex)) { // There is an assumption that constructing an empty vector wont do any allocations. If this // incorrect, this might leak for the arena case.
current_vector_ = &map_.emplace(dex, IndexVector(vector_allocator_)).first->second;
current_dex_file_ = dex;
} return current_vector_;
}
};
} // namespace art
#endif// ART_RUNTIME_DEX_REFERENCE_COLLECTION_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.