(let* ((n 1)
(bm (benchmark-run
(dolist (filename (map-keys emms-cache-db))
(setq n (+ n 1))
(condition-case nil
(emms-info-native--decode-info-fields filename)
(error (message "Error while processing %s" filename)))))))
(message "Totel %s files, speed is %s files per second." n (/ n (car bm))))
I use emacs 28 gccemacs branch.
1. master speed
Error while processing /home/feng/音乐/未整理/Jambalaya (On The Bayou).mp3
Error while processing /home/feng/音乐/未整理/Mean.mp3
Error while processing /home/feng/音乐/李玉刚/逐梦令 四美图/月光.mp3
Totel 1261 files, speed is 405.9625992748337 files per second.
2. info-native speed
Error while processing /home/feng/音乐/未整理/Jambalaya (On The Bayou).mp3
Error while processing /home/feng/音乐/未整理/Mean.mp3
Error while processing /home/feng/音乐/李玉刚/逐梦令 四美图/月光.mp3
Totel 1261 files, speed is 808.5052910067327 files per second.
by the way, is it possible add a function, which can read a problem mp3 file,
and
generate a small test mp3 file?
At 2021-02-19 05:46:35, "Petteri Hintsanen" <[email protected]> wrote:
>(apologies it you get this message twice, my mailer is complaining for
>some reason)
>
>Yoni Rabkin <[email protected]> writes:
>
>> Petteri, what do you think of the dynamic-scaling idea?
>
>It could help but I think it’s not the best way to go forward. I am
>afraid it is the design itself that is failing here.
>
>Namely, the current implementation reads in the whole tag (which can be
>big, as we’ve seen) before parsing, even though we are not interested in
>most of it. At the end, we need only a few, relatively small textual
>frames (album, artist, etc.) from the complete tag.
>
>I hacked together an "incremental" parser that goes through the tag one
>frame at a time, and skips over those that EMMS does not care about.
>Hopefully it saves memory and, who knows, it may also give some
>performance boost. (I didn’t have time to do any benchmarking.) Due to
>id3v2 peculiarities, the code is quite ugly and regressions are likely.
>
>But please test if it gives any better results. Code is in info-native
>branch.
>
>Thank you all for your feedback.
>
>Regards,
>Petteri