maybe I am wrong,  I test again with emacs28 gccemacs branch, and find that:


1. master
Totel 1261 files, speed is 1308.8998360985452 files per second.


2. info-native

Totel 1261 files, speed is 899.9466389450938 files per second.






both are  fast enough :-)












在 2021-02-19 08:52:44,"tumashu" <[email protected]> 写道:
>(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

Reply via email to