Open qryxip opened 6 months ago
現在blocking::VoiceModelはzipクレート、tokio::VoiceModelはasync_zipクレートで別々に実装されています。blocking::VoiceModelもasync_zipを使うようにして、実装を統一します。
blocking::VoiceModel
tokio::VoiceModel
実装がバラけているのを解消できる
async_zipはtokio無しでも動くことを利用する。Rust 1.75からtrait定義に-> impl Traitを書けることを利用して上手く抽象化を行い、blocking::VoiceModelはasync_zip::base、tokio::VoiceModelはasync_zip::tokioで駆動するようにする(async_zip v0.0.16の場合)。
-> impl Trait
async_zip::base
async_zip::tokio
N/A
パフォーマンス的に本当にasync_zipに統合してよいのかどうかを知るため、とりあえずmem版(ZIPファイル全体を一度読み込んでから解凍)をベンチしてみました。やはりzipよりは僅かに遅いように見えますが、実用上は誤差になると思います。
やはりzipよりは僅かに遅いように見えますが、実用上は誤差になると思います。
同感です!!
内容
現在
blocking::VoiceModel
はzipクレート、tokio::VoiceModel
はasync_zipクレートで別々に実装されています。blocking::VoiceModel
もasync_zipを使うようにして、実装を統一します。Pros 良くなる点
実装がバラけているのを解消できる
Cons 悪くなる点
実現方法
async_zipはtokio無しでも動くことを利用する。Rust 1.75からtrait定義に
-> impl Trait
を書けることを利用して上手く抽象化を行い、blocking::VoiceModel
はasync_zip::base
、tokio::VoiceModel
はasync_zip::tokio
で駆動するようにする(async_zip v0.0.16の場合)。VOICEVOXのバージョン
N/A
OSの種類/ディストリ/バージョン
その他