Vscode: アむドル時でもCPU䜿甚率カヌ゜ルレンダリングによる

䜜成日 2017幎03月20日  Â·  64コメント  Â·  ゜ヌス: microsoft/vscode

  • VSCodeバヌゞョン1.10.28076a19fdcab7e1fc1707952d652f0bb6c6db331
  • OSバヌゞョンmacOS Sierra 10.12.3

VS Codeは、フォヌカスされおアむドル状態のずきに13のCPUを䜿甚し、バッテリヌを消耗したす。 これは、カヌ゜ルのレンダリングが点滅しおいるこずが原因である可胜性がありたす。 フォヌカスアンドアむドル時のCPU䜿甚率は、理想的には0近くになるず思いたす。

再珟するにはこれは空の蚭定ファむルで機胜し、すべおのプラグむンが無効になっおいたす

  1. すべおのVSCodeりィンドりを閉じたす。
  2. 新しいりィンドりを開きたす[ファむル]-> [新しいりィンドり]。 りェルカムペヌゞが衚瀺されたす。
  3. 無題のファむルが空の状態で新しいタブを開きたす[ファむル]-> [新しいタブ]。 カヌ゜ルが点滅しおいたす。
  4. VSCodeが無芖できない量のCPUを消費しおいるのがわかるはずです。私の13むンチMacBookProでは13です。
  5. 他のアプリケヌションぞのCmd + Tab。 これで、カヌ゜ルは衚瀺されなくなりたす。
  6. VSCodeが実質的にCPUを消費しおいないこずがわかりたす。

開発ツヌルでタむムラむンを蚘録したしたが、ざっず芋たずころ、CPUアクティビティは500ミリ秒ごずに点滅するカヌ゜ルのレンダリングによるものであるこずがわかりたした。

ChromeやTextEditのような他のmacOSアプリケヌションは、CPUをあたり消費せずにカヌ゜ルが点滅するので、これは確実に最適化できるず思いたす。

bug editor-core perf

最も参考になるコメント

同様にバッテリヌ寿呜に倢䞭になっおいる人のための回避策カヌ゜ルの点滅を無効にするず、CPU䜿甚率が0に䜎䞋したす。蚭定は次のずおりです。

  "editor.cursorBlinking": "solid"

党おのコメント64件

同様にバッテリヌ寿呜に倢䞭になっおいる人のための回避策カヌ゜ルの点滅を無効にするず、CPU䜿甚率が0に䜎䞋したす。蚭定は次のずおりです。

  "editor.cursorBlinking": "solid"

Twitterの䜕人かの人々はこれを再珟できないず蚀ったので、私はデバッグに圹立぀ように開発ツヌルにタむムラむンを蚘録したした。

TimelineRawData-20170321T114212.json.zip

  • タむムラむンのスクリヌンショット

    boot mz0y1

  • 単䞀のフレヌムにズヌムむンするず、2 fpsのみをレンダリングしおいるのに、メむンスレッドが60 fps16ミリ秒ごずでいく぀かの䜜業を実行しおいるこずがわかりたす。矢印でマヌクされた现い線です。

    boot 684m3

  • これらの现い線の1぀にズヌムむンするず、60fpsでレンダリングが行われおいるこずがわかりたす。

    boot f9qau

  • CPUプロファむルを取埗するず、特定のJS関数ではなく、「プログラム」で䜿甚されおいるCPUのほずんどが衚瀺されたす。

    boot g2wbo

  • "editor.cursorBlinking": "solid"を蚭定するず、問題はほずんどなくなりたす。定期的な「レむダヌツリヌの曎新」/「ペむント」/「耇合レむダヌ」が匕き続き発生したすが、16ミリ秒ごずではなく、500ミリ秒ごずにのみ発生したす。

これがお圹に立おば幞いです。

@joliss内郚で起こっおいるこずぞのクむックアンサヌネむティブアニメヌションはChromiumの60hzで曎新されたす。

同様のほが同じChromiumの問題https://bugs.chromium.org/p/chromium/issues/detail?id=500259ずChromiumの远跡アむテムhttps://bugs.chromium.org/p/chromium/issues/detail id = 361587

珟圚のCSSアニメヌション

<strong i="11">@keyframes</strong> monaco-cursor-blink {
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.cursor-blink {
    animation: monaco-cursor-blink 1s step-start 0s infinite;
}

曎新

Paul IrishChrome guyの匕甚https://news.ycombinator.com/item?id=13941293

Webスタック䞊に構築された匷力な*テキスト゚ディタは、OSテキストカレットに䟝存できず、独自に提䟛する必芁がありたす。
この堎合、VSCodeはおそらくカヌ゜ルを点滅させるための最も合理的なアプロヌチを䜿甚しおいたすCSSキヌフレヌムアニメヌションを備えたstepタむミング関数。 これにより、ブラりザは500ミリ秒ごずにのみ䞍透明床を倉曎するようになりたす。 䞀方、Chromeはただこれを完党に最適化しおいないため、 http//crbug.com/361587です。
そのため、珟圚、Chromeは16ミリ秒ごずに完党なレンダリングラむフサむクルスタむル、ペむント、レむダヌを実行しおいたすが、500ミリ秒間隔でのみその䜜業を実行する必芁がありたす。 Chromeのスタむルコンポヌネントに取り組んでいる゚ンゞニアはこれを解決できるず確信しおいたすが、少し手間がかかりたす。 このトピックに関する可芖性の远加により、修正の優先順䜍が䞊がる可胜性が高いず思いたす。 :)

  • 単玔なテキスト゚ディタ、および[contenteditable]に基づいお構築された基本的な゚ディタは可胜ですが、それらが最も必芁な機胜セットに拡匵されるこずはめったにありたせん。

クロムタブのバックグラりンドCPU䜿甚率に関するこの倉曎は、゚ディタヌに圱響したすか

うたくいけないhttps://github.com/electron/electron/issues/7553を参照。 圓瀟はない蚭定backgroundThrottlingにfalseしばらくすでに以来。

玠晎らしい分析をしおくれた@ joliss @ rebornixに感謝したす。

OSXでsetInterval䜿甚に戻る必芁があるようです。

psこれが最初のカヌ゜ル点滅ロゞックです:)
image

@rebornixこれは私たちがしばらく前に遭遇した同様の問題。 この堎合の回避策は、アニメヌション芁玠を単に閉塞するのではなく、䜿甚されおいないずきにDOMから削陀するこずでした。

同じためのcssスタむルもありたすが、ここで䜿甚されおいるかどうかはわかりたせん-

<strong i="6">@keyframes</strong> monaco-cursor-blink {
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

https://github.com/Microsoft/vscode/blob/master/src/vs/editor/browser/viewParts/viewCursors/viewCursors.css

カヌ゜ルアニメヌションにhttps://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallbackを䜿甚しおみたせんか

ペヌゞが非衚瀺になったこずを通知する

function handleVisibilityChange() {
  if (document.hidden) {
    // disable cursor animation with class name
  } 
  else  {
    // add back cursor animation
  }
}
document.addEventListener("visibilitychange", handleVisibilityChange, false);

CPUの代わりにGPUを䜿甚しおCSSアニメヌションをレンダリングするためのここでの提案

.cursor-blink {
    will-change: opacity;
}

珟圚の実装では、゚ディタヌがフォヌカスを倱った堎合、アニメヌションを削陀しお䜜業を楜にしたす。 ただし、゚ディタヌにフォヌカスがある堎合は、゚ディタヌが衚瀺され非衚瀺たたはバックグラりンドではないアクティブであり、ナヌザヌぱディタヌで䜜業しおいたすが読み取りは良いケヌスです、ビュヌ/コンテンツの倉曎はトリガヌされたせん。 この堎合、アむドル状態であっおも点滅カヌ゜ルを衚瀺する必芁がありたす。これが点滅カヌ゜ルです。

圓初、この機胜はJavaScriptで実装されおいたしたが、玄1幎前にCSSアニメヌションに切り替えたした。 @alexandrudimaが述べたように、OSXのJSに戻りたいず思うかもしれたせん。

@camwestは、APIが魅力的であり、唯䞀の

@mehas will-changeは有望です。 詊しおみたしたが、この堎合、Chromiumは最適化されたせん。 開発ツヌルで[点滅のペむント]オプションをオンにするず、この点滅しおいるカヌ゜ルがたったく再ペむントされおいないこずがわかりたす。

@ jlukic @ bchernyご提案ありがずうございたす。 最適化したいのは、カヌ゜ルが衚瀺され、アクティブで点滅しおいるずきです。そのため、可芖性チェックを行っおも、この問題は匕き続き発生したす。 しかし、あなたは正しいです、私たちは可芖性をチェックする必芁がありたす。 珟圚、りィンドりをスクロヌルしお点滅しおいるカヌ゜ルを非衚瀺にした堎合、最適化は行われたせん。

公平を期すために、モナコは本圓に、本圓に、本圓に耇雑です。 :)

@rebornix will-倉曎は私のプロゞェクトで機胜し、CPU䜿甚率は完党になくなりたした。 ただし、私のキヌフレヌムは䞍透明床を倉曎したせん。代わりに、芁玠の色を「継承」から「透明」に倉曎したす。

私はただの朜䌏者であり、これが眵倒ず芋なされた堎合は申し蚳ありたせんが、2フレヌムのアニメヌションGIFでうたくいきたせんか これを最終的にテストする方法は完党にはわかりたせんが、Chromeに倉換されるずっず前に、KHTMLでさえすでにそのための最適化されたパスを持っおいたず想像できたした。

@eteeselinkは興味深いものですが、カヌ゜ルの色を倉曎したりズヌムしたりする必芁があるなど、簡単ではないかもしれたせん。それたでの間、jsに戻す方が簡単かもしれたせん。

@matthiasg Ahyes、ズヌムを忘れたした。

それ以倖の堎合は、テヌマの色に基づいお点滅するGIFを自動生成するのはそれほど難しくありたせん。 GIFピクセルデヌタはLZWで゚ンコヌドされおいたすが、パレットデヌタは圧瞮されおいないため、プリベむクされたファむルの数バむトにパッチを適甚する必芁がありたす。 しかし、そのようなgifをズヌムするずがやけおしたうので、それでもこれは悪いアプロヌチかもしれたせん。

誰かがgifキャレットのズヌムを邪魔しないようにする方法を思い付くこずができれば、色を取り、点滅するキャレットのアニメヌションgifデヌタURLを生成するコヌドを提䟛するこずを玄束したす。

@eteeselinkずにかく、バニラJSでは、おそらくPHPず他のいく぀かのフレヌバヌも絶察に芁点を

@eteeselinkオフザりォヌルの゜リュヌションを提案する堎合は、代わりにカラットを<blink></blink>でラップしおみたせんか りィンク

人々が真の改善を詊みおいる問題やPRに぀いお、無駄なコメントをするこずでReddit旅団に参加するこずは控えおください。

゚ディタヌにフォヌカスがある堎合は、゚ディタヌが衚瀺されおいるこずを意味したす

これは誀った仮定です。 フォヌカスを䞎えずにりィンドりを別のりィンドりの䞊に䞊げるのは簡単です。 私が知っおいる2぀の方法

  • 「垞に䞊に描く」WMヒント
  • りィンドりが仮想デスクトップ間で移動されたずきスタックの順序はグロヌバルであるため、りィンドりが前のデスクトップに最優先されおいた堎合、新しいデスクトップにはない可胜性がありたす。

どちらもそれ自䜓で非垞に䞀般的ですが、必ずしも問題を匕き起こすずは限りたせん。

@ o11cありがずう、曞くずきの私の仮定はあたりにもワむルドでした。 はい、フォヌカスは必ずしも衚瀺される必芁はありたせん。りィンドりのスクロヌルは1぀のケヌスです同じ段萜でこれに぀いお説明したした:(。フォヌカス+衚瀺が最も䞀般的なケヌスかどうかはわかりたせんが、すべお軜枛する必芁がありたす。

setTimeoutたたはsetIntervalは、requestIdleCallbackよりもこのナヌスケヌスにおそらく適しおいるず思いたす。 requestIdleCallbackのタむミングは予枬できず、JSで行っおいる䜜業は安䟡です。頻床の䜎いタむマヌをスケゞュヌルするだけでよいず思いたす。

䟋 https://gist.github.com/esprehn/afec30fbc655bba6bb8f3f67c28beef4

たた、このキャレットアニメヌションはスムヌズなパルス効果を実行しおいたすが、ブラりザのシステムカヌ゜ル䟋 <input>たたは<textarea>内のカヌ゜ルはバむナリのオン/オフのみを実行しおいるこずにも泚意しおください。 。 MacずLinuxのネむティブコントロヌルも同様に、代わりに点滅したす。 あたりきれいではありたせんが、䜿甚する電力はかなり少なくなりたす。

@esprehnに感謝しease-in-outを䜿甚する滑らかな/拡倧する点滅カヌ゜ルを蚀うこずさえありたせん。

@eteeselinkを埅っお

䟋 https 

そのアニメヌションのたばたきキャレットゞェネレヌタをすぐに芋たいず思っおいたす;

@mrkev your 1px gif as data uri dataimage / gif; base64 、R0lGODlhAQABAPAAAAAAAP /// yH / C05FVFNDQVBFMi4wAwEAAAAh + QQFMgABACwAAAAAAAAQABAAACAkwBACH5BAUyAAOALAAAAABABAC

@rmacfadyen甘い gifは理論的にはカラヌテヌブルを䜿甚するため、「オン」フレヌムのそのピクセルを黒に着色する3バむトは、芋぀けるのが難しくないはずですフレヌムに栌玍されおいないため、ヘッダヌを深く通過する必芁はありたせん。 。 明日暇があれば、もっず深く掘り䞋げるこずができたす

ずにかく睡眠が必芁なりェルプは、これをもう少し詳しく調べるこずにしたした。 gifは垞に14バむト目から始たるグロヌバルカラヌテヌブルを䜿甚するため、色を倉曎する方法を理解するのは難しくありたせんでした。 これにより、この点滅するピクセルgifが赀になりたした。

screen shot 3

さお、本圓に厄介なのは、base64では各桁が6ビットしか゚ンコヌドしないため、物事が適切に敎列しないこずです。 これは、桁18の最䞋䜍ビットから桁22の最䞊䜍ビットたで、そのgifの黒色を゚ンコヌドしたす。 したがっお、基本的に、䜍眮18〜22の文字[A-P] [A-/] [A-/] [A-/] [P,f,v,/]いく぀かの順列は、すべおの色でそのピクセルを描画したす。

これは、ランダムな色のGIFの䟋です。 私は基本的に、18〜22文字の文字をG8ABf眮き換えたしたこれは䞊蚘の基準に適合したす。

https://jsfiddle.net/mrkev/stxq613s/7/

RGBを受け取り、このgifをその色で返す関数を䜜成するのはそれほど悪くないはずです

私は7時間で授業を受け、文字通り自分で遊んでいたす。

しかし、いずれにせよ、誰かがすでにhex-to-base64関数を䜜成しおいお、スタックオヌバヌフロヌをすばやく怜玢するだけでそれを芋぀けるこずができるこずに気づきたした。 これが関数です。

// takes color as string 'RRGGBB'
var generate_cursor_image = color => {
  var gif = '47494638396101000100F00000' + color + '00000021FF0B4E45545343415045322E30030100000021F90405320001002C00000000010001000002024C010021F90405320001002C00000000010001000002024401003B'
  return 'data:image/gif;base64,' + btoa(gif.match(/\w{2}/g).map(a => String.fromCharCode(parseInt(a, 16))).join(""))
}

おやすみなさい、皆さん

くそヌ、 @ mrkevはそれに私を打ち負かした。 ずにかく、これが同じこずの私の実装です
https://jsfiddle.net/a6g4ob7h/

マッチングずマッピングが行われおおらず、btoaだけなので、少し速いかもしれたせん。 しかし、速床が重芁かどうかは疑わしいので、結果をキャッシュするこずをお勧めしたす。

私が本圓に疑問に思うのは、これが物事をたったくスピヌドアップするかどうかです。 テストするための適切な蚭定はありたせんが、アニメヌションGIFも60fpsで再レンダリングされる可胜性がありたす。

あなたは、長方圢状のカヌ゜ルを持っおズヌムしないようにしたい堎合、あなたはたた、アニメヌションSVGで行くこずができたす。  <animate>芁玠はすでにSVG 1.0仕様の䞀郚でした。

@eteeselink最倧倀は玄50fpsである必芁がありたす、 http //nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser

out

私にずっおは、ほずんどの堎合0のたたですCPU䜿甚率は最初の列です-OSX 10.12.3-MacBook Pro Retina、15むンチ、2013幎埌半

カヌ゜ルに関しおはデフォルト蚭定がありたす。

Linuxに぀いおは誰も蚀及しおいたせんが、WaylandIvy Bridge Graphicsを䜿甚したGNOME Shellでは玄5〜7です。

blinkカヌ゜ル点滅スタむルのsetIntervalに戻るこずで、これを軜枛するPR23121をマヌゞしたした。 Mac miniでは、CPU䜿甚率が5.9から0.9に䜎䞋したす。

ネむティブになり、OSにカヌ゜ルを無料で提䟛させるこずを怜蚎したこずがありたすか

@justjoeyukこれができない理由に぀いおは、䞊蚘の@rebornixからの匕甚を参照しおください

@justjoeyuk代わりに、完党にネむティブで非Webスタックベヌスのアプリケヌションを提案しおいる堎合VSCodeのような、テヌマが倧きく、完党にDPIに䟝存しない、クロスプラットフォヌムアプリケヌションの可胜性のあるニヌズを暪断する堎合、非ネむティブのカヌ゜ル代替が関係なく必芁です。

速報 Microsoftは、ひどくコヌディングされた遅い゜フトりェアを䜜成しおおり、MacOS10では問題がさらに顕著になっおいたす。

誰が掚枬したでしょうか

@LandonPowellあなたは問題に぀いおの実際の議論を汚染しおいたす。 ここでのreddit / hackernewsのブリゲヌドはばかげおいたす。

タヌミナルカヌ゜ルはどうですか それはCPUサむクルにもスパむクを匕き起こしおいたすか

@mehas

CPUの代わりにGPUを䜿甚しおCSSアニメヌションをレンダリングするためのここでの提案

これは、CPUからGPUに負荷を移動するこずで問題を隠すだけです。 実際には修正されたせん。

@ Daniel15

これは、CPUからGPUに負荷を移動するこずで問題を隠すだけです。 実際には修正されたせん。

CPUの負荷がこの問題を修正するんGPUを䜿甚するようにアニメヌションを最適化し、問題ずなっおいたす。

これは、私が提案した特定の修正の質問ずは別のものです

それを再珟する方法がよくわかりたせん。 私はvim゚ミュレヌションプラグむンを䜿甚しおいたす。 それが関連しおいるかどうかは本圓にわかりたせん。

これがどうなるか知りたいのですが。

GPUを䜿甚するようにアニメヌションを最適化するず、この問題は修正されたす。

ただし、䞍芁なGPU負荷が発生したす。 これは、グラフィックカヌドのプロセッサに負荷がかかるこずを陀いお、同様の問題です。 それは実際には修正ではありたせん😛

む゚スはアフリカで生たれたした。

どういたしたしお。

カヌ゜ルにgifを䜿っおみたせんか

ただし、䞍芁なGPU負荷が発生したす。 それは同様の問題です

そうですが、アむドル状態でもCPU䜿甚率であるこの問題ではありたせん。

@ efroim102 https://github.com/Microsoft/vscode/issues/22900#issuecomment -288832322

芪愛なる神よ、この議論は、目暙が䜕であるかが決定されるたで、茪になっお進みたす。

  1. バッテリヌ消費を枛らす
  2. CPUの競合を枛らす

今のずころ1を仮定したす。 次に、このようなワヌクロヌドでCPUからGPUぞのオフロヌドが、a同じ量の゚ネルギヌを䜿甚するか、bより少ない゚ネルギヌを䜿甚するか、cより倚くの゚ネルギヌを䜿甚するかに぀いお、もう少しデヌタ駆動型にするこずができたす。 私はこれらの問題に関する専門知識がないので、どちらが正しいかを予枬するこずはできたせん。

ただし、GPUオフロヌドがbに぀ながるず仮定したしょう。 完党ではありたせんが、Chromiumが根本的な問題に察凊しおいる間、たたはその堎合、トレヌドオフはこのパスを远求するのに十分蚱容できる可胜性がありたす。 ただし、VSCodeチヌムがこれを完党に修正する必芁があるず刀断した堎合、オフロヌドを遞択するこずはほずんどありたせん。長期的な修正を远求するこずをお勧めしたすかなり時間がかかる堎合でも。 少なくずも私の取るに足らない意芋では、この問題に泚意が向けられおおり、䟝存関係によっお意図した修正が有効になったずきに優先されるこずを知っおいれば十分です。

どの゜リュヌションが利甚可胜/ブロックされおいるかに぀いおの埮劙な詳现のいく぀かを混乱させたず確信しおいたすが、これを曞くこずで、人々が゜リュヌション空間に飛び蟌むのではなく、解決したい問題を䞻匵するこずに集䞭できるこずを望んでいたす。

どちらの方法でも、GPUはレンダリングの負荷に察凊するための蚭備が敎っおいたせんか それはたさにそれが䜜られたものです。

同意したした。CPUずGPUの䜿甚方法を優先し、グラフィックス関連の機胜でグラフィックス固有のリ゜ヌスを䜿い果たす方が理にかなっおいたす。 CPUの増加はGPUの11の損倱ではなく、その逆も同様です。 この時点ではChromiumのバグにパッチが適甚されるたでほずんど意味がありたせんが、珟圚の゜リュヌションではCPUを䜿甚しおいるため重量ははるかに少ないですが、ある皋床関連性がありたす。

プログラムごずに本栌的なブラりザを出荷する必芁があるため、デスクトップでのWebテクノロゞの䜿甚をやめるべきだず思いたす。
蚀うたでもなく、䞊蚘のプログラムがいく぀かある堎合は、同じバむナリがいたるずころに耇補されおいたす。

ベアメタルに戻る必芁がありたす。

PSAppleが埩掻しおいなければ、JScriptはObj-Cず同じように、10幎前に廃止されるべきでした。
PPS^^^^これは暎蚀です。

PPS^^^^これは暎蚀です。

@ bit2shift確かにそうです、そしおそれ

@ bit2shift-私はいく぀かの郚分に同意したすがブラりザベヌスのアプリはおそらく真のネむティブアプリず比范しおかなり「ネむティブ」に感じられないずいう事実など、「ベアメタル」はどのくらい䜎レベルですか マシンコヌド アセンブリ蚀語 C C ++ C テクノロゞヌスタックに関係なく、垞にいく぀かの抜象化レむダヌがありたす。

蚀うたでもなく、䞊蚘のプログラムがいく぀かある堎合は、同じバむナリがいたるずころに耇補されおいたす。

ただし、NuGetパッケヌゞを䜿甚するCアプリでも同じです。 すべおのアセンブルはアプリに察しおロヌカルです。 .NET Coreは、フレヌムワヌクの倧郚分をNuGetパッケヌゞずしお配垃したす。

各プログラムに本栌的なブラりザを同梱する必芁があるためです。

技術的には、Edge゚ンゞンを䜿甚できたす。これにより、別のブラりザヌランタむムをむンストヌルする必芁がなくなりたす。 Internet Explorerは、ほが20幎前にHTMLアプリケヌションで同様のこずを行いたした。 もう1぀の䟋はReactNativeで、利甚可胜な堎合はOSのネむティブJS゚ンゞンを䜿甚したす。 JavaScriptベヌスのアプリの堎合、React Native for Windowsのようなものは、ネむティブUIりィゞェットを䜿甚するため、よりネむティブに感じられるため、Webテクノロゞヌではなくおそらく未来です。

@ Daniel15

...「ベアメタル」はどれくらい䜎レベルですか マシンコヌド アセンブリ蚀語 C C ++ C

機械語にコンパむル可胜な蚀語 source -> ELF/PEカりントされるは、このコンテキストでは「ベアメタル」ず芋なされるため、ここでは抜象化レむダヌは重芁ではありたせん。

Internet Explorerは、ほが20幎前にHTMLアプリケヌションで同様のこずを行いたした。

mshta.exe 90幎代からsystem32に存圚するmshtml.dllを䜿甚させるのず「䌌たようなもの」。

もう1぀の䟋はReactNativeで、利甚可胜な堎合はOSのネむティブJS゚ンゞンを䜿甚したす。 JavaScriptベヌスのアプリの堎合、React Native for Windowsのようなものは、ネむティブUIりィゞェットを䜿甚するため、よりネむティブに感じられるため、Webテクノロゞヌではなくおそらく未来です。

デスクトップJSアプリで高いパフォヌマンスが必芁な堎合は、十分な時間を持っおいる人がLLVMのフロント゚ンドを䜜成する必芁がありたす。
コヌドの任意のスニペットを実行する機胜が倱われたすが、それはセキュリティの芳点からは利点になりたす。

/糞

この糞を脱線させおくれたせんか これは、カヌ゜ルが点滅する特定のパフォヌマンスの問題に関する問題であり、JSベヌスのデスクトップアプリを開発するこずの䞀般的なメリットに぀いお議論する堎所ではありたせん。

あなたはこれらの暎蚀に興味のない人々のメヌルボックスをスパムしおいるだけです。

<input type=text>を2px * 10pxのサむズで、カヌ゜ルを眮いた堎所に配眮しおはどうでしょうか。 そうすれば、 <input> P <blink></blink>のネむティブの点滅カヌ゜ルを䜿甚したす👍

たた、この問題がどれほど深刻かはわかりたせん。VSCodeがアむドル状態のずきコヌドを蚘述しおいないずき、ほずんどの堎合、フォヌカスが合っおおらず、フォヌカスは他のアプリケヌションにありたす。カヌ゜ルの点滅が止たりたす。

私の経隓から、gifはあたり良くありたせん。 私はか぀おgif画像ずしおロヌディングスピナヌを持っおいたした。 indexeddbずのやり取り䞭に䜿甚したした。 デスクトップ䞊でも、スピナヌが停止するのが芋えるこずがありたした。

タヌミナルカヌ゜ルの倉曎をマスタヌずリリヌス/1.11にプッシュしたしたCSSアニメヌション-> setInterval 。

この問題を調査しおいただき、ありがずうございたす。 あなたの調査ず提案は、根本的な原因ず考えられる解決策を芋぀けるのに圹立ちたした JavaScript setInterval 、アニメヌションGIF、およびその他のいく぀かの手法を比范し、次の解決策を決定したした。

  • editor.cursorBlinkingがblink蚭定されおいるか、 terminal.integrated.cursorBlinkingがtrueに蚭定されおいる堎合、点滅するロゞックがJavaScriptに実装されるようになりたした。 私たちのテストでは、CPU䜿甚率が1未満に䜎䞋するこずが瀺されおいたす。
  • editor.cursorBlinkingがsmooth 、 expandたたはphaseに蚭定されおいる堎合、これらはCSSむヌゞング機胜を䜿甚し、カヌ゜ルがアむドル状態になった埌、点滅するアニメヌションを停止したす。 10秒。

この修正はすでにInsiderビルドに含たれおおり、数日䞭にリリヌスされるAprilStableビルドで利甚できるようになりたす。 私たちのテスト結果を確認しおいただければ幞いです。 問題が発生した堎合は、新しい問題を䜜成しおください。

@rebornix 「たたは」 terminal.integrated.cursorBlinkingがtrue蚭定されおいるずいう意味ですか それずも「and」は意図的なものでしたか

@jedmao蚂正しおくれおありがずう、 orはずです。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡