Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: /speaker_info/singer_infoをキャッシュ可能にする #1126

Closed
wants to merge 1 commit into from

Conversation

sabonerune
Copy link
Contributor

内容

/speaker_info/singer_infoのレスポンスにCache-ControlETagを付与することでキャッシュ可能にします。
これにより2回目以降のエディタの起動が高速化することが見込めます。

キャッシュが再利用可能かを識別するETagには"エンジンID-エンジンバージョン"を使用します。
また、開発版は同じバージョンでリソースが変わってしまうので大体の起動時間(time.time_ns())を使用してエンジンが起動する度にETagを変更します。

その他

Dev版の扱いがこれでいいのか悩んでいます。
使用するリソースを全部読み込んでハッシュ関数にかければリリース版とDev版両方に対応できるのですがそれによる起動速度低下が予測できなくて…

参考資料

ref: MDN HTTP キャッシュ
ref: MDN Cache-Control
ref: MDN Etag

@sabonerune sabonerune requested a review from a team as a code owner March 18, 2024 14:58
@sabonerune sabonerune requested review from Hiroshiba and removed request for a team March 18, 2024 14:58
Copy link

github-actions bot commented Mar 18, 2024

Coverage Result

Resultを開く
Name Stmts Miss Cover
run.py 527 219 coverage-58%
voicevox_engine/init.py 1 0 coverage-100%
voicevox_engine/cancellable_engine.py 94 72 coverage-23%
voicevox_engine/core/init.py 0 0 coverage-100%
voicevox_engine/core/core_adapter.py 81 12 coverage-85%
voicevox_engine/core/core_initializer.py 60 30 coverage-50%
voicevox_engine/core/core_wrapper.py 225 157 coverage-30%
voicevox_engine/dev/init.py 0 0 coverage-100%
voicevox_engine/dev/core/init.py 0 0 coverage-100%
voicevox_engine/dev/core/mock.py 65 4 coverage-94%
voicevox_engine/dev/tts_engine/init.py 0 0 coverage-100%
voicevox_engine/dev/tts_engine/mock.py 28 0 coverage-100%
voicevox_engine/engine_manifest/EngineManifest.py 36 0 coverage-100%
voicevox_engine/engine_manifest/EngineManifestLoader.py 12 0 coverage-100%
voicevox_engine/engine_manifest/init.py 0 0 coverage-100%
voicevox_engine/library_manager.py 92 4 coverage-96%
voicevox_engine/metas/Metas.py 36 0 coverage-100%
voicevox_engine/metas/MetasStore.py 28 1 coverage-96%
voicevox_engine/metas/init.py 0 0 coverage-100%
voicevox_engine/model.py 180 3 coverage-98%
voicevox_engine/morphing.py 71 4 coverage-94%
voicevox_engine/preset/Preset.py 13 0 coverage-100%
voicevox_engine/preset/PresetError.py 2 0 coverage-100%
voicevox_engine/preset/PresetManager.py 80 2 coverage-98%
voicevox_engine/preset/init.py 0 0 coverage-100%
voicevox_engine/setting/Setting.py 9 0 coverage-100%
voicevox_engine/setting/SettingLoader.py 20 0 coverage-100%
voicevox_engine/setting/init.py 0 0 coverage-100%
voicevox_engine/tts_pipeline/init.py 0 0 coverage-100%
voicevox_engine/tts_pipeline/kana_converter.py 88 1 coverage-99%
voicevox_engine/tts_pipeline/mora_mapping.py 7 0 coverage-100%
voicevox_engine/tts_pipeline/phoneme.py 34 0 coverage-100%
voicevox_engine/tts_pipeline/text_analyzer.py 146 6 coverage-96%
voicevox_engine/tts_pipeline/tts_engine.py 267 9 coverage-97%
voicevox_engine/user_dict/part_of_speech_data.py 5 0 coverage-100%
voicevox_engine/user_dict/user_dict.py 146 12 coverage-92%
voicevox_engine/utility/init.py 0 0 coverage-100%
voicevox_engine/utility/connect_base64_waves.py 37 0 coverage-100%
voicevox_engine/utility/core_utility.py 6 0 coverage-100%
voicevox_engine/utility/core_version_utility.py 8 1 coverage-88%
voicevox_engine/utility/mutex_utility.py 13 0 coverage-100%
voicevox_engine/utility/path_utility.py 26 6 coverage-77%
voicevox_engine/utility/run_utility.py 10 7 coverage-30%
TOTAL 2453 550 coverage-78%

@tarepan
Copy link
Contributor

tarepan commented Mar 18, 2024

@sabonerune
関連 Issue はありますか?
キャッシュ戦略は /speaker_info /singer_info に限らず幅広く影響があるため、どこかで議論されているのか気になります。

@sabonerune
Copy link
Contributor Author

Discordで少し話した程度で議論レベルまではやっていないですね。
一度CloseしてIssue建てます。

そこまで大きな変更ではないからIssueなくても平気だろうと考えていました。
申し訳ありません。

@sabonerune sabonerune closed this Mar 19, 2024
@Hiroshiba
Copy link
Member

@tarepan ちなみにDiscordのこのあたりで議論がありました!
https://discord.com/channels/879570910208733277/893889888208977960/1218129720097505281

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants