Better bench scope + minor cleanup

This commit is contained in:
emeric
2025-05-07 13:56:43 +02:00
parent aa45cea988
commit 79be2ebb16
4 changed files with 20 additions and 20 deletions
+6 -6
View File
@@ -39,10 +39,9 @@ namespace lms::metadata::benchmarks
params.userExtraTags = { "MY_AWESOME_TAG_A", "MY_AWESOME_TAG_B", "MY_AWESOME_MISSING_TAG" }; params.userExtraTags = { "MY_AWESOME_TAG_A", "MY_AWESOME_TAG_B", "MY_AWESOME_MISSING_TAG" };
std::unique_ptr<ITagReader> testTags{ tests::createDefaultPopulatedTestTagReader() }; std::unique_ptr<ITagReader> testTags{ tests::createDefaultPopulatedTestTagReader() };
const TestAudioFileParser parser{ params };
for (auto _ : state) for (auto _ : state)
{ {
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(*testTags) }; std::unique_ptr<Track> track{ parser.parseMetaData(*testTags) };
} }
} }
@@ -55,11 +54,11 @@ namespace lms::metadata::benchmarks
} }
}; };
AudioFileParserParameters params; const AudioFileParserParameters params;
const TestAudioFileParser parser{ params };
for (auto _ : state) for (auto _ : state)
{ {
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(testTags) }; std::unique_ptr<Track> track{ parser.parseMetaData(testTags) };
} }
} }
@@ -114,9 +113,9 @@ namespace lms::metadata::benchmarks
"White/Light", "White/Light",
"Yamantaka // Sonic Titan" }; "Yamantaka // Sonic Titan" };
const TestAudioFileParser parser{ params };
for (auto _ : state) for (auto _ : state)
{ {
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(testTags) }; std::unique_ptr<Track> track{ parser.parseMetaData(testTags) };
} }
} }
@@ -132,9 +131,10 @@ namespace lms::metadata::benchmarks
AudioFileParserParameters params; AudioFileParserParameters params;
params.artistTagDelimiters = { "/", ";" }; params.artistTagDelimiters = { "/", ";" };
const TestAudioFileParser parser{ params };
for (auto _ : state) for (auto _ : state)
{ {
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(testTags) }; std::unique_ptr<Track> track{ parser.parseMetaData(testTags) };
} }
} }
+6 -6
View File
@@ -362,7 +362,7 @@ namespace lms::metadata
return fileExtensions; return fileExtensions;
} }
std::unique_ptr<Track> AudioFileParser::parseMetaData(const std::filesystem::path& p) std::unique_ptr<Track> AudioFileParser::parseMetaData(const std::filesystem::path& p) const
{ {
try try
{ {
@@ -389,7 +389,7 @@ namespace lms::metadata
} }
} }
void AudioFileParser::parseImages(const std::filesystem::path& p, ImageVisitor visitor) void AudioFileParser::parseImages(const std::filesystem::path& p, ImageVisitor visitor) const
{ {
try try
{ {
@@ -416,7 +416,7 @@ namespace lms::metadata
} }
} }
std::unique_ptr<Track> AudioFileParser::parseMetaData(const ITagReader& tagReader) std::unique_ptr<Track> AudioFileParser::parseMetaData(const ITagReader& tagReader) const
{ {
auto track{ std::make_unique<Track>() }; auto track{ std::make_unique<Track>() };
@@ -426,7 +426,7 @@ namespace lms::metadata
return track; return track;
} }
void AudioFileParser::processTags(const ITagReader& tagReader, Track& track) void AudioFileParser::processTags(const ITagReader& tagReader, Track& track) const
{ {
track.title = getTagValueAs<std::string>(tagReader, TagType::TrackTitle).value_or(""); track.title = getTagValueAs<std::string>(tagReader, TagType::TrackTitle).value_or("");
track.mbid = getTagValueAs<core::UUID>(tagReader, TagType::MusicBrainzTrackID); track.mbid = getTagValueAs<core::UUID>(tagReader, TagType::MusicBrainzTrackID);
@@ -493,7 +493,7 @@ namespace lms::metadata
track.originalYear = track.originalDate.getYear(); track.originalYear = track.originalDate.getYear();
} }
std::optional<Medium> AudioFileParser::getMedium(const ITagReader& tagReader) std::optional<Medium> AudioFileParser::getMedium(const ITagReader& tagReader) const
{ {
std::optional<Medium> medium; std::optional<Medium> medium;
medium.emplace(); medium.emplace();
@@ -523,7 +523,7 @@ namespace lms::metadata
return medium; return medium;
} }
std::optional<Release> AudioFileParser::getRelease(const ITagReader& tagReader) std::optional<Release> AudioFileParser::getRelease(const ITagReader& tagReader) const
{ {
std::optional<Release> release; std::optional<Release> release;
+6 -6
View File
@@ -37,18 +37,18 @@ namespace lms::metadata
AudioFileParser& operator=(const AudioFileParser&) = delete; AudioFileParser& operator=(const AudioFileParser&) = delete;
protected: protected:
std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) override; std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) const override;
std::unique_ptr<Track> parseMetaData(const ITagReader& reader); std::unique_ptr<Track> parseMetaData(const ITagReader& reader) const;
static void parseImages(const IImageReader& reader, ImageVisitor visitor); static void parseImages(const IImageReader& reader, ImageVisitor visitor);
private: private:
void parseImages(const std::filesystem::path& p, ImageVisitor visitor) override; void parseImages(const std::filesystem::path& p, ImageVisitor visitor) const override;
std::span<const std::filesystem::path> getSupportedExtensions() const override; std::span<const std::filesystem::path> getSupportedExtensions() const override;
void processTags(const ITagReader& reader, Track& track); void processTags(const ITagReader& reader, Track& track) const;
std::optional<Medium> getMedium(const ITagReader& tagReader); std::optional<Medium> getMedium(const ITagReader& tagReader) const;
std::optional<Release> getRelease(const ITagReader& tagReader); std::optional<Release> getRelease(const ITagReader& tagReader) const;
const AudioFileParserParameters _params; const AudioFileParserParameters _params;
}; };
@@ -33,10 +33,10 @@ namespace lms::metadata
public: public:
virtual ~IAudioFileParser() = default; virtual ~IAudioFileParser() = default;
virtual std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) = 0; virtual std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) const = 0;
using ImageVisitor = std::function<void(const Image&)>; using ImageVisitor = std::function<void(const Image&)>;
virtual void parseImages(const std::filesystem::path& p, ImageVisitor visitor) = 0; virtual void parseImages(const std::filesystem::path& p, ImageVisitor visitor) const = 0;
virtual std::span<const std::filesystem::path> getSupportedExtensions() const = 0; virtual std::span<const std::filesystem::path> getSupportedExtensions() const = 0;
}; };