DB作成に要する時間 2 考察 version 4

2019/05/13 14:33 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
DB作成に要する時間 2 考察 # prog
## こんなに遅いとちょっと使えないよなあ
しかしfoobarはどうして速いんだろう?
やってることは基本的に同じだと思うんだけど
コードのチューンだけで速くなるのだろうか?
キーポイントはタグの取得だ
mutagenは遅すぎだよなあ・・
everythingも速いけどなあ、そもそも仕組みが違うんだろうか?

## mutagen
mp3がエラー含めると5868ファイル、タグ取得に48.639秒、1ファイルにつき0.00828秒だった
速いのか遅いのか???
ちなみにエラーはmutagenのエラーで、ほぼタグ無しによる
普通にファイルをopenしてバイナリで読み込んでタグを取得してcloseして
私も昔zipファイルを扱うときにヘッダを自分で取得してデータを取り出すって事をやったことあるので何となくわかるんだけど
時間は仕方ないのか?
mutagenは全てのタグを取りに行ってるから、その分で時間がかかるのだろうか?
特定のタグだけを獲りに行けるんだろうか?

自作した方が良いかな
しかしタグってエンコードフォーマットによって違うんだなあ
それぞれ用に書くのって面倒だ
mutagenのソース見たらわかるだろうか??
pythonで自作するくらいならmutagen使った方が速いかもなあ

## コード
## 設計
① 対象フォルダを渡して列挙・検索・タグ取得してDBに追加までするクラスを作成
このクラスには初回、更新、監視機能をつける
② メインは音楽再生アプリにして、起動したら別スレッドで①クラスを呼び出す、メインスレッドは音楽を再生する

② メインは音楽再生アプリにして、起動したら別スレッドで①クラスを呼び出す、通常は更新させる、監視はメインでやるかクラでやるか要検討、メインスレッドはリストに基づき音楽を再生する
③①のクラスについて、DB追加を二段階にして、最初は追加のみ、二段階目でmutagenを使う方式を検討
④第一段階~拡張子判別だけしてDBに音楽ファイルを追加していく
第二段階~DBで mtime がnullのものを取り出してmutagen実行し、mtimeとタグをupdateしていく
      

こんなに遅いとちょっと使えないよなあ

しかしfoobarはどうして速いんだろう?
やってることは基本的に同じだと思うんだけど
コードのチューンだけで速くなるのだろうか?
キーポイントはタグの取得だ
mutagenは遅すぎだよなあ・・
everythingも速いけどなあ、そもそも仕組みが違うんだろうか?

mutagen

mp3がエラー含めると5868ファイル、タグ取得に48.639秒、1ファイルにつき0.00828秒だった
速いのか遅いのか???
ちなみにエラーはmutagenのエラーで、ほぼタグ無しによる
普通にファイルをopenしてバイナリで読み込んでタグを取得してcloseして
私も昔zipファイルを扱うときにヘッダを自分で取得してデータを取り出すって事をやったことあるので何となくわかるんだけど
時間は仕方ないのか?
mutagenは全てのタグを取りに行ってるから、その分で時間がかかるのだろうか?
特定のタグだけを獲りに行けるんだろうか?

自作した方が良いかな
しかしタグってエンコードフォーマットによって違うんだなあ
それぞれ用に書くのって面倒だ
mutagenのソース見たらわかるだろうか??
pythonで自作するくらいならmutagen使った方が速いかもなあ

設計

① 対象フォルダを渡して列挙・検索・タグ取得してDBに追加までするクラスを作成
このクラスには初回、更新、監視機能をつける
② メインは音楽再生アプリにして、起動したら別スレッドで①クラスを呼び出す、通常は更新させる、監視はメインでやるかクラスでやるか要検討、メインスレッドはリストに基づき音楽を再生する
③①のクラスについて、DB追加を二段階にして、最初は追加のみ、二段階目でmutagenを使う方式を検討
④第一段階~拡張子判別だけしてDBに音楽ファイルを追加していく
第二段階~DBで mtime がnullのものを取り出してmutagen実行し、mtimeとタグをupdateしていく