misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
10.05k stars 1.37k forks source link

Safariでノートの描画負荷が高い(というか多分スタイルの再計算が多い) #11004

Open tamaina opened 1 year ago

tamaina commented 1 year ago

Summary

Safariでノートの描画負荷が高い(というか多分スタイルの再計算が多い)

電池の減りが猛烈だったり、(Deckで)タイムラインにノートが出現してもしばらく描画されないのを直したい

Related to #10805

(CPUやGPUの使用率が絞られているっぽくて、CPU使用率が高くなるわけではない)

tamaina commented 1 year ago

これ縦長画像表示が加担してるな

tamaina commented 1 year ago

ノートの高さの再計算が伴わないように書き換える方が当然ながら計算量は少なくて済む(し他のブラウザも軽くなる)

yuriha-chan commented 1 year ago

画像のアスペクト比をDBに突っ込むという可能性

tamaina commented 1 year ago

サイズが突っ込まれてるのでどうにでもなる

MineCake147E commented 1 year ago

サイズが突っ込まれてるのでどうにでもなる

毎回GCDを走らせたり縦横をGCDで除算したりするの結構CPUに負荷がかかりませんか? 除数や被除数、CPUのマイクロアーキテクチャにもよりますが、 Golden Cove だと除算命令は整数で加算の最大約18倍(Haswellだと最大101倍)、倍精度浮動小数点数で加算の最大約5倍(Haswellだと最大7倍)くらい時間がかかります。 ARM系だと同等かもっと酷いと思われます。

参考 IDIV (符号付き整数除算) ADD (整数加算) VDIVSD(倍精度浮動小数点数除算) VADDSD(倍精度浮動小数点数加算)

tamaina commented 10 months ago

https://github.com/misskey-dev/misskey/pull/10452 がrevertされた(

tamaina commented 9 months ago

関連: #11377, #11386, #12721

tamaina commented 9 months ago

なんでネチネチ言ってるかと言うと、canvasとimgで切り替わった時に高さが変わるのがうざい

tamaina commented 9 months ago

(scrollHeightごとに3:2/1:1/16:9を切り替えるという手もあるが、それだとjsでheight/widthを読む必要があるので #12719 の問題が再発する