Skip to content

Conversation

@sevenc-nanashi
Copy link
Member

@sevenc-nanashi sevenc-nanashi commented May 21, 2024

内容

  • fast-base64を使い、
  • base64->URLをキャッシュする

ことで高速化します。

関連 Issue

スクリーンショット・動画など

compare.mp4

その他

(なし)

@sevenc-nanashi sevenc-nanashi requested a review from a team as a code owner May 21, 2024 09:15
@sevenc-nanashi sevenc-nanashi requested review from Hiroshiba and removed request for a team May 21, 2024 09:15
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

良いですね!!!ぜひ実装したいです!!
asyncになっちゃうんですね。そこ周りでちょっとコメントを書きました。


asyncComputedの実装がちょっとややこしいかもです。
(実際にはcomputedではなく、どちらかというとwatchして値を返す感じ)

提案としては、利用箇所がエンジンのアイコン取得部分だけなのと、そのコードが3箇所にコピペされているので、むしろこっちを便利関数にするのはどうでしょう。

こんな感じを想像してます。

type RefLike<T> = Ref<T> | ComputedRef<T>

const useEngineIcons = (engineManifests: RefLike<Record<EngineId, EngineManifest>>) => {
  const engineIcons = ref<Record<EngineId, string>>({});

  watch(
    engineManifests,
    async (engineManifests) => {
      for (const [engineId, manifest] of Object.entries(engineManifests)) {
        engineIcons.value[EngineId(engineId)] = await base64ImageToUri(manifest.icon);
      }
    },
    {
      immediate: true,
    },
  );

  return engineIcons;
};

Object.entries(engineManifests)).mapでpromiseリスト作ってPromise.allして非同期にしても良いかも。

@sevenc-nanashi
Copy link
Member Author

useEngineIconsにまとめるようにしました。

@sevenc-nanashi
Copy link
Member Author

これで大丈夫のはず?

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!!

起動が早くなったのめちゃくちゃいいですね!!

@Hiroshiba
Copy link
Member

@sevenc-nanashi ちょっと突発的ご相談が・・・!
ポストにXアカウントを言及させていただいても良いでしょうか? 🙇

ニーズのある機能が実装されたときにSNSで言及しておりまして、今回のプルリクエストもツイートしたいと思っています。
https://twitter.com/search?q=%23VOICEVOX%E9%96%8B%E7%99%BA%E7%8A%B6%E6%B3%81
もしよかったらそこで @@sevenc-nanashi さんのXアカウントをツイート文に含めて紹介させていただきたいのですが、いかがでしょうか・・・?

(RTされたりリプライで届く感謝の言葉をお届けできればという意図と、あと開発者が分かるので新規コミッターの方がOSS開発に興味を持ってくださる導線を増やせればという意図があります・・・!)

こんな感じを予定しています・・・!

#VOICEVOX開発状況 
起動が高速化し、操作できるまでの時間が短くなりました🎉(今後のアップデートで実装されます。)
【開発者: @sevenc_nanashi】
https://github.com/VOICEVOX/voicevox/pull/2090

@Hiroshiba Hiroshiba merged commit a07c776 into VOICEVOX:main May 28, 2024
@sevenc-nanashi
Copy link
Member Author

大丈夫ですー。次に大きな機能実装したときもツイートは別に許可なしで大丈夫です、

@Hiroshiba
Copy link
Member

承知しました! ツイートさせていただきました!!
https://x.com/voicevox_pj/status/1795592006657581079

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.

画像や音声をblobせず、直接base64文字列をURLにしてしまう

2 participants