Vscode: рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рднреА CPU рдЙрдкрдпреЛрдЧ (рдХрд░реНрд╕рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдорд╛рд░реНрдЪ 2017  ┬╖  64рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/vscode

  • VSCode рд╕рдВрд╕реНрдХрд░рдг: 1.10.2 (8076a19fdc77e1fc1707952d652f0bb6c6db331)
  • OS рд╕рдВрд╕реНрдХрд░рдг: macOS рд╕рд┐рдПрд░рд╛ 10.12.3

рд╡реАрдПрд╕ рдХреЛрдб 13% рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдмреИрдЯрд░реА рдХреА рдирд┐рдХрд╛рд╕реАред рдпрд╣ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрдм рдлрд╝реЛрдХрд╕-рдПрдВрдб-рдЖрдЗрдбрд▓ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ 0% рдХреЗ рдХрд░реАрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):

  1. рд╕рднреА VS рдХреЛрдб рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░реЗрдВред
  2. рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ (рдлрд╝рд╛рдЗрд▓ -> рдирдИ рд╡рд┐рдВрдбреЛ)ред рдЗрд╕рдореЗрдВ рд╡реЗрд▓рдХрдо рдкреЗрдЬ рджрд┐рдЦреЗрдЧрд╛ред
  3. рдПрдХ рдЦрд╛рд▓реА рд╢реАрд░реНрд╖рдХ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЯреИрдм рдЦреЛрд▓реЗрдВ (рдлрд╝рд╛рдЗрд▓ -> рдирдпрд╛ рдЯреИрдм)ред рдХрд░реНрд╕рд░ рдкрд▓рдХ рдЭрдкрдХ рд░рд╣рд╛ рд╣реИред
  4. рдЖрдкрдХреЛ рд╡реАрдПрд╕ рдХреЛрдб рдХреЛ рдореЗрд░реЗ 13 "рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдкрд░ рд╕реАрдкреАрдпреВ - 13% рдХреА рдЧреИрд░-рдирдЧрдгреНрдп рд░рд╛рд╢рд┐ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  5. Cmd + Tab рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВред рдЕрдм рдХрд░реНрд╕рд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред
  6. рдЖрдкрдХреЛ рд╡реАрдПрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╕реНрддреБрддрдГ рдХреЛрдИ рд╕реАрдкреАрдпреВ рдирд╣реАрдВред

рдореИрдВрдиреЗ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдореЗрдВ рдПрдХ рд╕рдордпрд░реЗрдЦрд╛ рджрд░реНрдЬ рдХреА, рдФрд░ рдПрдХ рд╕рд░рд╕рд░реА рдирдЬрд╝рд░ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕реАрдкреАрдпреВ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣рд░ 500ms рдореЗрдВ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рдЖрддреА рд╣реИред

рдХреНрд░реЛрдо рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯрдПрдбрд┐рдЯ рдЬреИрд╕реЗ рдЕрдиреНрдп рдореИрдХрдУрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреВрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

bug editor-core perf

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмреИрдЯрд░реА рдЬреАрд╡рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреБрдиреВрдиреА рд╣реИрдВ: рдХрд░реНрд╕рд░ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ 0. рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

  "editor.cursorBlinking": "solid"

рд╕рднреА 64 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмреИрдЯрд░реА рдЬреАрд╡рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреБрдиреВрдиреА рд╣реИрдВ: рдХрд░реНрд╕рд░ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ 0. рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

  "editor.cursorBlinking": "solid"

рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓реНрд╕ рдореЗрдВ рдПрдХ рд╕рдордпрд░реЗрдЦрд╛ рджрд░реНрдЬ рдХреАред

TimelineRawData-20170321T114212.json.zip

  • рд╕рдордпрд░реЗрдЦрд╛ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:

    boot mz0y1

  • рдПрдХ рд╣реА рдлреНрд░реЗрдо рдореЗрдВ рдЬрд╝реВрдо рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╣рдо рдХреЗрд╡рд▓ 2 рдПрдлрдкреАрдПрд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЦреНрдп рдзрд╛рдЧрд╛ 60 рдПрдлрдкреАрдПрд╕ (рд╣рд░ 16 рдПрдордПрд╕) рдкрд░ рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рддреАрд░ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдкрддрд▓реА рд░реЗрдЦрд╛рдПрдВ:

    boot 684m3

  • рдЙрди рдкрддрд▓реА рд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ рдЬрд╝реВрдо рдХрд░рдХреЗ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рд░реЗрдВрдбрд░ 60 рдПрдлрдкреАрдПрд╕ рдкрд░ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ:

    boot f9qau

  • рдЬрдм рдореИрдВ рдПрдХ рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд▓реЗрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ "рдкреНрд░реЛрдЧреНрд░рд╛рдо ()) рдореЗрдВ рдЦрд░реНрдЪ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реАрдкреАрдпреВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬреЗрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд╣реАрдВред

    boot g2wbo

  • рдЬрдм рдореИрдВ "editor.cursorBlinking": "solid" рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ: рдПрдХ рдЖрд╡рдзрд┐рдХ "рдЕрдкрдбреЗрдЯ рд▓реЗрдпрд░ рдЯреНрд░реА" / "рдкреЗрдВрдЯ" / "рдХрдореНрдкреЛрдЬрд┐рдЯ рд▓реЗрдпрд░реНрд╕" рдЕрднреА рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ 500ms рдореЗрдВ, рд╣рд░ 16ms рдореЗрдВ рдирд╣реАрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпреЗ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛!

@ рдЬреЙрд▓рд┐рд╕ рд╣реБрдб рдХреЗ рддрд╣рдд рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рд╕рдорд╛рди (рд▓рдЧрднрдЧ рд╕рдорд╛рди) рдХреНрд░реЛрдорд┐рдпрдо рдХрд╛ рдореБрджреНрджрд╛ https://bugs.chromium.org/p/chromium/issues/detail?id=500259 рдФрд░ рдХреНрд░реЛрдорд┐рдпрдо рдХрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдЖрдЗрдЯрдо https://bugs.chromium.org/p/chromium-issues/detail ? id = 361,587

рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рд╕реАрдПрд╕рдПрд╕ рдПрдиреАрдореЗрд╢рди

<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;
}

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдкреЙрд▓ рдЖрдпрд░рд┐рд╢ (рдХреНрд░реЛрдо рдЖрджрдореА) рдХрд╛ рдЙрджреНрдзрд░рдг https://news.ycombinator.com/item?id=13941293

рд╡реЗрдм рд╕реНрдЯреИрдХ рдкрд░ рдмрдирд╛рдП рдЧрдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА * рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ OS рдЯреЗрдХреНрд╕реНрдЯ рдХреИрд░реЗрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, VSCode рд╕рдВрднрд╡рддрдГ рдХрд░реНрд╕рд░ рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдЪрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ: рд╕реАрдПрд╕рдПрд╕ рдХреАрдлрд╝реНрд░реЗрдо рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде step рдЯрд╛рдЗрдорд┐рдВрдЧ-рдлрд╝рдВрдХреНрд╢рдиред рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреЗрд╡рд▓ 500ms рдХреА рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред рдЗрд╕ рдмреАрдЪ, рдХреНрд░реЛрдо рдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП http://crbug.com/361587ред
рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ, Chrome рд╣рд░ 16ms рдореЗрдВ рдкреВрд░реНрдг рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЬреАрд╡рдирдЪрдХреНрд░ (рд╢реИрд▓реА, рдкреЗрдВрдЯ, рдкрд░рддреЗрдВ) рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрдм рдЙрд╕реЗ рдХреЗрд╡рд▓ 500ms рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдХреНрд░реЛрдо рдХреА рд╢реИрд▓реА рдХреЗ рдШрдЯрдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЬреАрдирд┐рдпрд░ рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдХрд╛рдо рд▓реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЬреЛрдбрд╝реА рдЧрдИ рджреГрд╢реНрдпрддрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рдХреНрд╕ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдЧреАред :)

  • рд╕рд░рд▓ рдкрд╛рда рд╕рдВрдкрд╛рджрдХреЛрдВ, рдФрд░ рдмреБрдирд┐рдпрд╛рджреА [рд╕рд╛рдордЧреНрд░реА] рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреИрдорд╛рдиреЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рдЯреИрдм рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ CPU рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрдкрд╛рджрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛?

рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ (рджреЗрдЦреЗрдВ https://github.com/electron/electron/issues/7553)ред рд╣рдо рдХрд░рддреЗ рд╕реЗрдЯ backgroundThrottling рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП false рдХреЗ рдмрд╛рдж рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реАред

рдЕрдЪреНрдЫреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП @joliss @rebornix рдзрдиреНрдпрд╡рд╛рджред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ OSX рдкрд░ setInterval рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреАрдПрд╕ рдпрд╣рд╛рдБ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд░реНрд╕рд░ рдирд┐рдорд┐рд╖ рддрд░реНрдХ рд╣реИ :)
image

@rebornix рдпрд╣рд╛рдБ рдПрдХ рдРрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЪрд▓рд╛рдпрд╛ рдерд╛ - https://bugs.chromium.org/p/chromium/issues/detail?id=658894ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдбреЛрдо рд╕реЗ рдПрдирд┐рдореЗрдЯрд┐рдВрдЧ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред

рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ -
https://github.com/Microsoft/vscode/blob/master/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts

рдЙрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓реА рднреА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -

<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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛?

PageVisibility API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдиреАрдореЗрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рдХрдм рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред

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

рд╕реАрдкреАрдпреВ рдХреЗ рдмрдЬрд╛рдп рдЬреАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдПрд╕рдПрд╕ рдПрдиреАрдореЗрд╢рди рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕реБрдЭрд╛рд╡:

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

рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдпрджрд┐ рд╕рдВрдкрд╛рджрдХ рдлреЛрдХрд╕ рдЦреЛ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдиреАрдореЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЬреАрд╡рди рдЖрд╕рд╛рди рд╣реЛред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрджрд┐ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ (рдЫрд┐рдкреА рдирд╣реАрдВ рд╣реИ рдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ) рдФрд░ рд╕рдХреНрд░рд┐рдп рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдкрдврд╝рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдорд╛рдорд▓рд╛ рд╣реИ) рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп / рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рди рдХрд░реЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдЕрднреА рднреА рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХреА рддрд░рд╣ рд╣реЛ, рдпрд╣реА рдПрдХ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рд╣реИред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рд╣рдордиреЗ CSS рдПрдиреАрдореЗрд╢рди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред @Alexandrudima рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдХреА рддрд░рд╣, рд╣рдо OSX рдкрд░ JS рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред

@camwest рдХрд┐ рдПрдкреА рдЖрдХрд░реНрд╖рдХ рд╣реИ, рдПрдХрдорд╛рддреНрд░ рдкрдХрдбрд╝ рд╕рдВрдЧрддрддрд╛ рд╣реИ (рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рд╕рдлрд╛рд░реА)ред

@mehas will-change рд╣реЛрдирд╣рд╛рд░ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХреНрд░реЛрдорд┐рдпрдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк Dev Tools рдореЗрдВ рдкреЗрдВрдЯ рдлреНрд▓реИрд╢рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд░рд┐рдкреАрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@jlukic @bcherny рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдЬрд┐рд╕ рдЪреАрдЬрд╝ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд░реНрд╕рд░ рджреГрд╢реНрдпрдорд╛рди, рд╕рдХреНрд░рд┐рдп рдФрд░ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреГрд╢реНрдпрддрд╛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд╣рдореЗрдВ рджреГрд╢реНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЕрднреА рдЕрдЧрд░ рдЖрдк рд╡рд┐рдВрдбреЛ рдХреЛ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдХреЛ рдЕрджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рд╣реИред

рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдирд╛, рдореЛрдирд╛рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╣реИред :)

@rebornix- рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реА keyframes рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ .. рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡реЗ рддрддреНрд╡ рдХрд╛ рд░рдВрдЧ 'рд╡рд┐рд░рд╛рд╕рдд' рд╕реЗ 'рдкрд╛рд░рджрд░реНрд╢реА' рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ lurker рд╣реВрдБ, рдФрд░ рдЦреЗрдж рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╢рдкрде рдЧреНрд░рд╣рдг рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рджреЛ рдлреНрд░реЗрдо рдПрдирд┐рдореЗрдЯреЗрдб gif рдЪрд╛рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рд░реНрдгрд╛рдпрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдХреНрд░реЛрдо рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдЧреЛрдореЛрд░реНрдлреЗрдб рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реА рдХреЗрдПрдЪрдЯреАрдПрдордПрд▓ рдиреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдХреВрд▓рд┐рдд рд░рд╛рд╕реНрддреЗ рдмрдирд╛ рд▓рд┐рдП рдереЗред

@eteeselink рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд░реНрд╕рд░ рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЬрд╝реВрдо рдЗрддреНрдпрд╛рджрд┐ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдмреАрдЪ js рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@matthiasg рдЕрд╣рд┐рд╕реЗ, рдЬрд╝реВрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдПред

рдЕрдиреНрдпрдерд╛, рдереАрдо рд░рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ GIF рдХреЛ рдСрдЯреЛрдЬреЗрдирд░реЗрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдкреВрд░реНрд╡-рдмреЗрдХреНрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреАрдЖрдИрдПрдл рдкрд┐рдХреНрд╕реЗрд▓ рдбреЗрдЯрд╛ рдПрд▓рдЬреЗрдбрдбрдмреНрд▓реНрдпреВ-рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ, рдЬрдмрдХрд┐ рдкреИрд▓реЗрдЯ рдбреЗрдЯрд╛ рдЕрд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ gif рдХреЛ рдЬреВрдо рдХрд░рдиреЗ рд╕реЗ рд╡рд╣ рдзреБрдВрдзрд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреБрд░рд╛ рддрд░реАрдХрд╛ рд╣реЛред

рдЕрдЧрд░ рдХреЛрдИ рдЬреАрдЖрдИрдПрдл рдХреИрд░реЗрдЯ рдХреЛ рдЬреВрдо рди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдРрд╕реЗ рдХреЛрдб рдХрд╛ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рд░рдВрдЧ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ-рдХреЗрдпрд░ рдПрдирд┐рдореЗрдЯреЗрдб рдЬреАрдЖрдИрдПрдл рдбреЗрдЯрд╛ рдпреВрдЖрд░рдПрд▓ рдмрдирд╛рддрд╛ рд╣реИред

@eteeselink рдЖрдкрдХреЛ рдмрд┐рд▓рдХреБрд▓ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗрдирд┐рд▓рд╛ JS рдореЗрдВ рд╡реИрд╕реЗ рднреА, рд╢рд╛рдпрдж PHP рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕реНрд╡рд╛рджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреАред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдкреВрд░реЗ рд╡реЗрдм рдкрд░ рдХрдИ рдЯрди рдЙрдкрдпреЛрдЧ рдорд┐рд▓реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЖрдк рд╕реБрдкрд░-рдкреНрд░рд╕рд┐рджреНрдз рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореВрд▓ рд▓реЗрдЦрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@eteeselink рдЕрдЧрд░ рд╣рдо рдСрдл-рдж-рд╡реЙрд▓ рд╕реЙрд▓реНрдпреВрд╢рди рд╕реБрдЭрд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреИрд░реЗрдЯ рдХреЛ <blink></blink> рдмрдЬрд╛рдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рдкреЗрдЯрддреЗ? :рдЖрдБрдЦ рдорд╛рд░рдирд╛:

рдХреГрдкрдпрд╛ рдореБрджреНрджреЛрдВ рдФрд░ рдкреАрдЖрд░рдУрдВ рдкрд░ рдмреЗрдХрд╛рд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдореЗрдВ рд░реЗрдбрд┐рдЯ рдмреНрд░рд┐рдЧреЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ

рдпрд╣ рдПрдХ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдЦрд┐рдбрд╝рдХреА рдХреЛ рджреВрд╕рд░реЗ рдкрд░ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рд╣реИред рджреЛ рддрд░реАрдХреЗ рдореБрдЭреЗ рдкрддрд╛ рд╣реИрдВ:

  • "рд╣рдореЗрд╢рд╛ рд╢реАрд░реНрд╖ рдкрд░ рдЖрдХрд░реНрд╖рд┐рдд" WM рд╕рдВрдХреЗрдд
  • рдЬрдм рд╡рд░реНрдЪреБрдЕрд▓ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рдВрдбреЛ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рд╕реНрдЯреИрдХрд┐рдВрдЧ рдСрд░реНрдбрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ, рдЕрдЧрд░ рдкрд┐рдЫрд▓реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рд╕рдмрд╕реЗ рдЖрдЧреЗ рдереА, рддреЛ рдпрд╣ рдирдП рдкрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рджреЛрдиреЛрдВ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╣рдореЗрд╢рд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддреЗ рд╣реИрдВред

@ o11c рдзрдиреНрдпрд╡рд╛рдж, рд▓рд┐рдЦрддреЗ рд╕рдордп рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдмрд╣реБрдд рдЬрдВрдЧрд▓реА рдереАред рд╣рд╛рдВ рдлреЛрдХрд╕ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рджреГрд╢реНрдпрдорд╛рди рд╣реЛрдирд╛, рд╡рд┐рдВрдбреЛ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИ (рдореИрдВрдиреЗ рдЙрд╕реА рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ :()ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдлреЛрдХрд╕ + рджреГрд╢реНрдп рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ setTimeout рдпрд╛ setInterval рд╢рд╛рдпрдж рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ requestIdleCallback рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред requestIdleCallback рдХрд╛ рд╕рдордп рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬреЗрдПрд╕ рдореЗрдВ рдЖрдк рдЬреЛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рд╕рд╕реНрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдордп-рд╕реАрдорд╛ рдХреЗ рдЕрдиреИрддрд┐рдХ рд╕рдордп-рдирд┐рд░реНрдзрд╛рд░рдг рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдВрдЧреЗред

рдкреВрд░реНрд╡ред https://gist.github.com/esprehn/afec30fbc655bba6bb8f3f67c28beef4

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд░реЗрдЯ рдПрдиреАрдореЗрд╢рди рдПрдХ рд╕рд╣рдЬ рдкрд▓реНрд╕ рдЗрдлреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХрд░реНрд╕рд░ (рдЙрджрд╛ред <input> рдпрд╛ <textarea> ) рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИ ред рдореИрдХ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдЗрд╕реА рддрд░рд╣ рдПрдХ рдмреНрд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХрдо рд╕реБрдВрджрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдХрдо рдмрд┐рдЬрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж @esprehn , рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдлреНрд▓реИрдЯ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрднреА рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдПрдиреАрдореЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд┐рдХрдиреА рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдирд╣реАрдВ рд╣реИ / рдирд┐рдорд┐рд╖ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдЬреЛ ease-in-out ред

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ @eteeselink , рдХреНрдпрд╛ рдЖрдк 1px gif рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдмреНрд▓рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг: https://jsfiddle.net/mrkev/stxq613s/1/

рдЬрд▓реНрдж рд╣реА рдЙрд╕ рдПрдирд┐рдореЗрдЯреЗрдб рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ-рдХреЗрдпрд░реНрдЯ рдЬрдирд░реЗрдЯрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ;)

@mrkev your 1px gif as data uri: data:image/gif;base64,R0lGODlhAQABAPAAAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFMgABACwAAAAAAQABAAACAkwBACH5BAUyAAEALAAAAAABAAEAAAICRAEAOw==

@rmacfadyen рдореАрдард╛! рдЪреВрдВрдХрд┐ gifs рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ 3 рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рд▓реЗ рд░рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ "рдСрди" рдлреНрд░реЗрдо рдкрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдмреНрд▓реИрдХ рд░рдВрдЧ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡реЗ рдлреНрд░реЗрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╣реЗрдбрд░ рд╕реЗ рдмрд╣реБрдд рдЧрд╣рд░реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ )ред рдЕрдЧрд░ рдореБрдЭреЗ рдХрд▓ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдорд┐рд▓ рдЬрд╛рдП рддреЛ рдореИрдВ рдЗрд╕рдореЗрдВ рдФрд░ рднреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдбреБрдмрдХреА рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ

рд╡реЗрд▓реНрдб, рдЬрд┐рд╕реЗ рд╡реИрд╕реЗ рднреА рдиреАрдВрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдиреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдЬреАрдЖрдИрдПрдл рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд░рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрд╢рд╛ 14 рд╡реАрдВ рдмрд╛рдЗрдЯ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд░рдВрдЧ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИред рдЗрд╕рдиреЗ рдкрд▓рдХ рдЭрдкрдХрддреЗ рд╣реА рдмрдирд╛ рджрд┐рдпрд╛ gif red

screen shot 3

рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рдпрд╣ рд╣реИ рдХрд┐ рдмреЗрд╕ 64 рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрдХ рдХреЗрд╡рд▓ 6 рдмрд┐рдЯреНрд╕ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЪреАрдЬреЗрдВ рдареАрдХ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рди рд╣реЛрдВред рдпрд╣ рдЕрдВрдХ 22 рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрдХреЛрдВ рдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдХрдо 18 рдмрд┐рдЯреНрд╕ рд╣реИ рдФрд░ рдЙрд╕ gif рдореЗрдВ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреЛ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рддреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдХреБрдЫ рдХреНрд░рдордЪрдп [A-P] [A-/] [A-/] [A-/] [P,f,v,/] 18-22 рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рд░ рд░рдВрдЧ рдореЗрдВ рдЙрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдЧрд╛ред

рдпрд╣рд╛рдБ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░рдВрдЧ рдкрд░ рдЙрд╕ GIF рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдореИрдВрдиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмрд╕ рдЬреЛ рдХреБрдЫ рднреА рдмрджрд▓ рджрд┐рдпрд╛ рдерд╛ рд╡рд╣ 18-22 G8ABf (рдЬреЛ рдХрд┐ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ)ред

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

рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ RGB рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ gif рдХреЛ рдЙрд╕ рд░рдВрдЧ рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ: (

рдореЗрд░реЗ рдкрд╛рд╕ 7 рдШрдВрдЯреЗ рдореЗрдВ рдХрдХреНрд╖рд╛ рд╣реИ, рдореИрдВ рд╕рдЪрдореБрдЪ рдЦреБрдж рдХреЛ рдЖрд░рдПрди рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рдЬреЛ рднреА рд╣реЛ, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣реЗрдХреНрд╕-рдЯреВ-рдмреЗрд╕ 64 рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдЦреЛрдЬ рдкрд░реНрдпрд╛рдкреНрдд рдереАред рддреЛ рдпрд╣рд╛рдБ рд╕рдорд╛рд░реЛрд╣ рд╣реИ;

// 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 рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЧрддрд┐ рдХреЗ рдорд╛рдорд▓реЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдПрдирд┐рдореЗрдЯреЗрдб gifs 60fps рдкрд░ рднреА рд░реЗрдВрдбрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЬрд╝реВрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЖрдпрддрд╛рдХрд╛рд░ рдЖрдХрд╛рд░ рдХрд╛ рдХрд░реНрд╕рд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдПрдирд┐рдореЗрдЯреЗрдб рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рднреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред ( <animate> рддрддреНрд╡ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SVG 1.0 рдпреБрдХреНрддрд┐ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред)

@eteeselink Max рд▓рдЧрднрдЧ 50fps, http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

out

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд░рд╣рддрд╛ рд╣реИ (рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓рд╛ рдХреЙрд▓рдо рд╣реИ - рдУрдПрд╕рдПрдХреНрд╕ 10.12.3 - рдореИрдХрдмреБрдХ рдкреНрд░реЛ рд░реЗрдЯрд┐рдирд╛, 15-рдЗрдВрдЪ, 2013 рдХреЗ рдЕрдВрдд рдореЗрдВ)

рдореЗрд░реЗ рдкрд╛рд╕ рдХрд░реНрд╕рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рднреА рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рд╡реЗрдирд▓реИрдВрдб (рдЖрдЗрд╡реА рдмреНрд░рд┐рдЬ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕) рдХреЗ рд╕рд╛рде GNOME рд╢реЗрд▓ рдкрд░ рд▓рдЧрднрдЧ 5-7% рд╣реИред

рд╣рдордиреЗ рдЕрднреА PR # 23121 рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ blink рдХрд░реНрд╕рд░ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП setInterval рдЬрд╛рдХрд░ рдЗрд╕реЗ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдореИрдХ рдорд┐рдиреА рдкрд░ рдореИрдВ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ 5.9% рд╕реЗ 0.9% рддрдХ рдЧрд┐рд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рджреЗрд╢реА рдЬрд╛рдиреЗ рдФрд░ OS рдХреЛ рдХрд░реНрд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ, рдореБрдлреНрдд рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдорд╛рдирд╛ рд╣реИ?

@justjoeyuk рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЗрд╢реА, рдЧреИрд░ рд╡реЗрдм рд╕реНрдЯреИрдХ рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ: рдЬрдм рдЖрдк рдПрдХ рднрд╛рд░реА рдереАрдореНрдб, рдкреВрд░реА рддрд░рд╣ рд╕реЗ DPI рд╕реНрд╡рддрдВрддреНрд░, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреИрд╕реЗ VSCode, рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рдЧреИрд░-рджреЗрд╢реА рдХрд░реНрд╕рд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ рднрд▓реЗ рд╣реА рдЬрд░реВрд░рдд рд╣реЛред

рддрд╛рдЬрд╝рд╛ рдЦрдмрд░! Microsoft MacOS 10 рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдореБрдЦ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде Microsoft рдХреЛ рдмрд╣реБрдд рд╣реА рдзреАрдорд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛрдбрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕рдиреЗ рдХрднреА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?

@LandonPowell рдЖрдк рдХрд┐рд╕реА рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд░реНрдЪрд╛ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рдпрд╣рд╛рдБ reddit / hackernews рдмреНрд░рд┐рдЧреЗрдбрд┐рдВрдЧ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИред

рдЯрд░реНрдорд┐рдирд▓ рдХрд░реНрд╕рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХреНрдпрд╛ рдпрд╣ рд╕реАрдкреАрдпреВ рдЪрдХреНрд░ рдореЗрдВ рд╕реНрдкрд╛рдЗрдХреНрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ?

@mehas

рд╕реАрдкреАрдпреВ рдХреЗ рдмрдЬрд╛рдп рдЬреАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдПрд╕рдПрд╕ рдПрдиреАрдореЗрд╢рди рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕реБрдЭрд╛рд╡:

рдпрд╣ рд╕рд┐рд░реНрдл CPU рд╕реЗ GPU рдкрд░ рд▓реЛрдб рдХреЛ рд▓реЗ рдЬрд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@ Daniel15

рдпрд╣ рд╕рд┐рд░реНрдл CPU рд╕реЗ GPU рдкрд░ рд▓реЛрдб рдХреЛ рд▓реЗ рдЬрд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

CPU рдкрд░ рд▓реЛрдб рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдиреБрдХреВрд▓рди GPU рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

(рдпрд╣ рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╡рд╛рд▓ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВ рд╡рд┐рдо рдЕрдиреБрдХрд░рдг рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред

GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ GPU рд▓реЛрдб рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред рдпрд╣ рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рднрд╛рд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рддрдп рдирд╣реАрдВ рд╣реИ ЁЯШЫ

рдЬреАрд╕рд╕ рдХрд╛ рдЬрдиреНрдо рдЕрдлреНрд░реАрдХрд╛ рдореЗрдВ рд╣реБрдЖ рдерд╛ред

рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдХрд░реНрд╕рд░ рдХреЗ рд▓рд┐рдП gif рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ GPU рд▓реЛрдб рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИ

рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рднреА рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рд╣реИред

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

рд╣реЗ рдкреНрд░рд┐рдп рджреЗрд╡рддрд╛рдУрдВ, рдпрд╣ рдмрд╣рд╕ рд╣рд▓рдХреЛрдВ рдореЗрдВ рдЬрд╛рдПрдЧреА рдЬрдм рддрдХ рдпрд╣ рддрдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рдХрд┐ рд▓рдХреНрд╖реНрдп рдХреНрдпрд╛ рд╣реИ:

  1. рдмреИрдЯрд░реА рдХреА рдЦрдкрдд рдХрдо рдХрд░реЗрдВ
  2. рд╕реАрдкреАрдпреВ рд╡рд┐рд╡рд╛рдж рдХреЛ рдХрдо рдХрд░реЗрдВ

рдкрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реЗрдВ (1)ред рддрдм рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛-рдЪрд╛рд▓рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реАрдкреАрдпреВ рд╕реЗ рдЬреАрдкреАрдпреВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХреЗ рдмреЛрдЭ рдХреЗ рд╕рд╛рде рдЙрддрд╛рд░рдирд╛ (рдП) рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рдореЗрдВ рдКрд░реНрдЬрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, (рдмреА) рдХрдо рдКрд░реНрдЬрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ (рд╕реА) рдЕрдзрд┐рдХ рдКрд░реНрдЬрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рд╕рдЪ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рди рд▓реЗрдВ рдХрд┐ GPU рдСрдлрд▓реЛрдб (b) рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ; рд╕рд╣реА рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░, рд╡реНрдпрд╛рдкрд╛рд░-рдорд╛рд░реНрдЧ рдЗрд╕ рдорд╛рд░реНрдЧ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдХреНрд░реЛрдорд┐рдпрдо рдЕрдкрдиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ VSCode рдХреА рдЯреАрдо рдиреЗ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭрд╛, рддреЛ рдСрдлрд▓реЛрдб рдПрдХ рдЕрд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛, рдФрд░ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдлрд┐рдХреНрд╕ рдХрд╛ рдкреАрдЫрд╛ рдХрд░рдирд╛ (рднрд▓реЗ рд╣реА рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧреЗ) рдмреЗрд╣рддрд░ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореЗрд░реА рддреБрдЪреНрдЫ рд░рд╛рдп рдореЗрдВ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдм рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд░ рд╣реЛрдЧрд╛ рдЬрдм рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлрд╝рд┐рдХреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред

(рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рд╕реВрдХреНрд╖реНрдо рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз / рдЕрд╡рд░реБрджреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрдЧрд╣ рдореЗрдВ рдЫрд▓рд╛рдВрдЧ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡реЗ рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред)

рдХреНрдпрд╛ рдЬреАрдкреАрдпреВ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд▓реЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реЛрдЧрд╛? рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рд╣рдордд, рд╣рдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рдХрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХреНрдпрд╛ рд╣реИ, рдЧреНрд░рд╛рдлрд┐рдХреНрд╕-рд╕рдВрдмрдВрдзрд┐рдд рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕реАрдкреАрдпреВ рдХрд╛ рдПрдХ рд▓рд╛рдн GPU рдХрд╛ 1: 1 рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдореВрдЯ (рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдмрдЧ рдХреЛ рдкреИрдЪ рдХрд┐рдП рдЬрд╛рдиреЗ рддрдХ) рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЕрднреА рднреА рд╕реАрдкреАрдпреВ рдХреЛ рдирд┐рдпреБрдХреНрдд рдХрд░рддрд╛ рд╣реИ (рдпрджреНрдпрдкрд┐ рдмрд╣реБрдд рдХрдо рд╡рдЬрди рдХреЗ рд╕рд╛рде)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд╡реЗрдм рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╢рд┐рдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдХреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рдЬрдЧрд╣ рдПрдХ рд╣реА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИрдВред

рд╣рдореЗрдВ рдирдВрдЧреЗ рдзрд╛рддреБ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ: JScript рдХреЛ 10 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЦреЛрджрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдЬреИрд╕реЗ Obj-C рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, Apple рдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ред
PPS: ^ ^ ^ ^ ^ рдпрд╣ рдПрдХ рд╢реЗрдЦрд╝реА рд╣реИред

PPS: ^ ^ ^ ^ ^ рдпрд╣ рдПрдХ рд╢реЗрдЦрд╝реА рд╣реИред

@ bit2shift рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдзрд╛рдЧрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рд░реЗрдВрдЯ рдХреЗ рд▓рд┐рдП GitHub рдореБрджреНрджреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред

@ bit2shift - рдЬрдмрдХрд┐ рдореИрдВ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ (рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдРрдк рд╢рд╛рдпрдж рдПрдХ рд╕рдЪреНрдЪреЗ рджреЗрд╢реА рдРрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА "рджреЗрд╢реА" рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рдореНрди-рд╕реНрддрд░ "рдирдВрдЧреЗ рдзрд╛рддреБ" рд╣реИ? рдорд╢реАрди рдХреЛрдб? рд╕рднрд╛ рдХреА рднрд╛рд╖рд╛? рд╕реА? рд╕реА ++? рд╕реА#? рдЖрдкрдХреА рддрдХрдиреАрдХ рд╕реНрдЯреИрдХ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдореЗрд╢рд╛ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрд╢рди рдХреА рдХрдИ рдкрд░рддреЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИрдВред

рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдХреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рдЬрдЧрд╣ рдПрдХ рд╣реА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИрдВред

рдпрд╣ рдХрд┐рд╕реА рднреА C # рдРрдк рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реА рд╣реИ рдЬреЛ NuGet рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдЕрд╕реЗрдореНрдмрд▓ рдРрдк рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╣реИрдВред .NET рдХреЛрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдврд╛рдВрдЪреЗ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╢рд┐рдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЖрдк рдПрдЬ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрдирд╛ рд╣реЛрдЧрд╛ред Internet Explorer рдиреЗ HTML рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 20 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рдерд╛ ред рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рд╣реИ, рдЬреЛ рдЬрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рд╡рд╣рд╛рдВ рдУрдПрд╕ рдХреЗ рдореВрд▓ рдЬреЗрдПрд╕ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЖрдзрд╛рд░рд┐рдд рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдЬреИрд╕рд╛ рдХреБрдЫ рд╕рдВрднрд╡рддрдГ рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рднрд╡рд┐рд╖реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рджреЗрд╢реА рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рдпреВрдЖрдИ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

@ Daniel15

(...) рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рдореНрди-рд╕реНрддрд░ "рдирдВрдЧреЗ рдзрд╛рддреБ" рдХреИрд╕реЗ рд╣реИ? рдорд╢реАрди рдХреЛрдб? рд╕рднрд╛ рдХреА рднрд╛рд╖рд╛? рд╕реА? рд╕реА ++? рд╕реА#?

рдХреЛрдИ рднреА рднрд╛рд╖рд╛ рдЬреЛ рдорд╢реАрди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ (рдХреЗрд╡рд▓ source -> ELF/PE рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ) рдХреЛ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ "рдирдВрдЧреЗ рдзрд╛рддреБ" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдЕрдореВрд░реНрдд рдХреА рдкрд░рддреЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИрдВред

Internet Explorer рдиреЗ HTML рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 20 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рдерд╛ред

"рдХреБрдЫ рдРрд╕рд╛ рд╣реА" рдЬреИрд╕рд╛ рдХрд┐ mshtml.dll 90 рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рд┐рд╕реНрдЯрдо32 рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ mshta.exe mshtml.dll рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рд╣реИ, рдЬреЛ рдЬрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рд╡рд╣рд╛рдВ рдУрдПрд╕ рдХреЗ рдореВрд▓ рдЬреЗрдПрд╕ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЖрдзрд╛рд░рд┐рдд рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдЬреИрд╕рд╛ рдХреБрдЫ рд╕рдВрднрд╡рддрдГ рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рднрд╡рд┐рд╖реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рджреЗрд╢реА рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рдпреВрдЖрдИ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк рдЬреЗрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдХрд┐рд╕реА рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдк рдХреЛрдб рдХреЗ рдордирдорд╛рдиреЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЦреЛ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реЛрдЧрд╛ред

/ рдзрд╛рдЧрд╛

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдЯрд░реА рд╕реЗ рдирд╣реАрдВ рдЙрддрд╛рд░ рд╕рдХрддреЗ? рдпрд╣ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕-рдЖрдзрд╛рд░рд┐рдд рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред

рдЖрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдореЗрд▓рдмреЙрдХреНрд╕реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдкреИрдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрди рд░реИрдВрдЯреНрд╕ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ <input type=text> 2px * 10px рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде <input> : P <blink></blink> way рдХреЗ рдореВрд▓ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХрд┐рддрдирд╛ рдЧрдВрднреАрд░ рд╣реИ, рдЬрдм VSCode рдмреЗрдХрд╛рд░ рд╣реИ (рдореИрдВ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ) рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдлреЛрдХрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдлреЛрдХрд╕ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрд░реНрд╕рд░ рдмреНрд▓рд┐рдВрдХ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ, рдЬрд┐рдл рдЗрддрдиреЗ рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдПрдХ рдмрд╛рд░ рдПрдХ gif рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдкрд┐рдирд░ рдерд╛ред рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдХрднреА-рдХрднреА рдореИрдВ рд╕реНрдкрд┐рдирд░ рдХреЛ рд╕реНрдЯреЙрдк рдкрд░ рднреА рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред

рдорд╛рд╕реНрдЯрд░ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ / 1.11 (рд╕реАрдПрд╕рдПрд╕ рдПрдиреАрдореЗрд╢рди -> setInterval ) рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓ рдХрд░реНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХреА рдЬрд╛рдВрдЪ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдиреЗ рд╣рдореЗрдВ рдореВрд▓ рдХрд╛рд░рдг рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХреА! рд╣рдордиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ setInterval , рдПрдирд┐рдореЗрдЯреЗрдб gif рдФрд░ рдХрдИ рдЕрдиреНрдп рддрдХрдиреАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА, рдФрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд░ рдмрд╕реЗ:

  • рддреЛ editor.cursorBlinking рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИ blink рдпрд╛ terminal.integrated.cursorBlinking рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИ true , рдирд┐рдорд┐рд╖ рддрд░реНрдХ рдЕрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ CPU рдЙрдкрдпреЛрдЧ 1% рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдпрджрд┐ editor.cursorBlinking smooth , expand рдпрд╛ phase рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ CSS рд╕рд╣рдЬрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд░реНрд╕рд░ рдХреЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдПрдиреАрдореЗрд╢рди рдХреЛ рд░реЛрдХ рджреЗрдВрдЧреЗред рджрд╕ рдкрд▓ред

рдпрд╣ рдлрд┐рдХреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдЗрдирд╕рд╛рдЗрдбрд░ рдмрд┐рд▓реНрдб рдореЗрдВ рд╣реИ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдкреНрд░реИрд▓ рд╕реНрдЯреЗрдмрд▓ рдмрд┐рд▓реНрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ рдЬреЛ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛рдПрдБ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдПрдБред

@rebornix рдХреНрдпрд╛ рдЖрдкрдХреЗ рдХрд╣рдиреЗ рдХрд╛ рдорддрд▓рдм "рдпрд╛" terminal.integrated.cursorBlinking true ? рдпрд╛ "рдФрд░" рдЬрд╛рдирдмреВрдЭрдХрд░ рдерд╛?

@jedmao рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ or рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

sirius1024 picture sirius1024  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

borekb picture borekb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mrkiley picture mrkiley  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

VitorLuizC picture VitorLuizC  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

philipgiuliani picture philipgiuliani  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ