После установки microsoft visual c жутко тормозит компьютер
Вообщем не будет никакой предыстории, конфига, описания проблемы и всего прочего. Я уже слишком многого начитался буквально обо всем что связанно с моей проблемой. Как и почему и зачем (памагите мне страшно, я не знаю как с этим жиКХМ.
Так вооот.
Просто хочу поинтересоваться у вас на тему того "Как Microsoft Visual C++, а точнее даже его отсутствие, может повлиять на поведение игры/самого пк".
Ладно, задам вопрос конкретнее. Может ли к хренатычам зависнуть полностью комп из-за отсутствия Microsoft Visual C++ определенной версии, нужной игре.
Зависнуть, скажем, в определенным момент. Напримееер, при появлении на экране рандомного визуального эффекта. Допустим ульт шейкера, шива. Неважно. Буквально любой эффект. При этом никогда непонятно в какой момент это тригернет. Может стабильно работать часов 5-6. А может спустя 20 минут игры после запуска от рандомного визуального эффекта сразу намертво зависнуть комп. При этом он перестает вообще на что-либо как-либо реагировать. Помогает только перезапуск кнопкой на системнике.
(А еще крч помню в Скайриме когда прокачивал магию восстановления , почти постоянно крашился скайримыч. Там типа визуальный эффект большой, желтое свечение вокруг персонажа. Вот крч конкретно на эту магию стабильно реакцией был краш игры .)
Крч расскажите у кого какие версии Microsoft Visual C++ стоят для доки2 (конкретно для доки2, дока2 - это моя жизень!11)
Ниже инфа для тех кто хочет чуууть-чуть более подробно погрузится в конкретную проблему. (Точнее к мои последним наблюдениям и выводам о подопытном)
-Крч я уже миллиард тестов всяких попеределал и миллиард инфы прочитал в интернетах. (также потеребил всевозможные настройки в какой-то радеоновской утилите которая обязательно ставится с дравами на видюху.)((также потеребил всевозможные варианты параметров запуска доты. 32/64 бит и 9/11 директрикс. Во всех 4 вариациях и с разными настройками графики на все вариациях))(((тааакже я сбросил весь разгон на всем что есть. Ну крч сбросил биос и оффнул сразу всю чепуху амдшную которая подразумевает "авторазгон"))) Могу сказать что железо все в порядке. Я в этом почти полностью уверен. Единственное что меня напрягает это монитор и то как он подключен к видюхе. Моник 1920х1080 60гц, работает с 2012 годика. Вообщем на данный момент он подключен к компу через переходник VGA-HDMI т.к. соответственно сам моник имеет только VGA кабелек а в нем самом никаких портов больше нет. Нуу и последнее до чего я решил доееекопаться - моник. Потеребил всевозможные ползунки в настройках. (щас все сброшено до заводских и нажата кнопочка "автосет" (ТАК КАК ничерта не помогло опять)). Так воот. Спустя каких-то 1:30 часа изучения всевозможных терминов о мониторах (фаза, частота, контраст. ) я наткнулся на какой-то сайт с тестами всяческими для моника. Ну точнее даже тут просто пикчи чтобы настроить по ним моник. И как же я удивился когда открыв тест на "мерцание" мой монитор просто нахрен погас. Просто черный экран. и все. СМЭРТЬ. Периодически иногда он снова начинал работать и показывал эту пикчу буквально на секунду-2 и снова черный экран. Так до тех пор пока я не закрою эту картинку. Вроде как это тест на настройку фазы. Ее можно выставить от 0 до 100. Я буквально по единице (точнее по 2, на моем монике только по 2 можно прибавлять и убавлять) прибавлял и смотрел на реакцию на эту картинку. Ничего не менялось. Моник также неадекватно реагирует на это. Просто черный экран и все. При этом индикатор питания показывает что моник включен и работает (ну также как и всегда).
1. Не удалялась Microsoft Visual C++.. В процессе удаления, появлялось окно с просьбой указать какой то файл, который находится на каком то виртуальном диске, который само собой не доступен и выставлен какой то путь. При удалении версии Microsoft Visual C++ 2012 окно ссылалось на Temp папку в которой лежал нужный .msi файл и после его выбора сообщалось о фейле. При удалении версии Microsoft Visual C++ 2005 просто выдавал какой то левый путь в папку с музыкой. Короче лолшто какой то..
2. Не получалось обновить.. При запуске установщика, было два варианта, удалить или восстановить. При выборе удалить, см. п. 1, при выборе восстановить, с незначительными различиями, но тоже п. 1
Почему мне потребовалось этим всем заниматься? Не запускался Skyrim. По косвенным признакам, все указывало на какие то проблемы с Microsoft Visual C++ и то, что с ним творилось во время попыток удаления/восстановления, это только подтвердили..
Опишу, как я эту проблему решил.
1. Удаление всех версий Microsoft Visual C++ через утилиту от Microsoft: MicrosoftFixit.ProgramInstallUninstall
Под спойлером, подробное описание.
Если не удаляются установленные на вашей системе Microsoft Visual C++, то воспользуйтесь утилитой MicrosoftFixit.ProgramInstallUninstall, для их удаления.
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.50727.42 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.50727.4053 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.51011 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.56336 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.57103 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.58299 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.59193 False
- Microsoft Visual C++ 2005 Redistributable - x86 8.0.61001
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022.0 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022.218 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30411 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.0 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4048 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148.0 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.5570 False
- Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161
- Microsoft Visual C++ 2010 Redistributable - x86 10.0.30319 False
- Microsoft Visual C++ 2010 Redistributable - x86 10.0.40219
- Microsoft Visual C++ 2012 Redistributable - x86 11.0.50727 False
- Microsoft Visual C++ 2012 Redistributable - x86 11.0.51106 False
- Microsoft Visual C++ 2012 Redistributable - x86 11.0.60610 False
- Microsoft Visual C++ 2012 Redistributable - x86 11.0.61030
- Microsoft Visual C++ 2013 Redistributable - x86 12.0.21005 False
- Microsoft Visual C++ 2013 Redistributable - x86 12.0.30501 False
- Microsoft Visual C++ 2013 Redistributable - x86 12.0.40649
- Microsoft Visual C++ 2015 Redistributable - x86 14.0.24210
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.50727.42 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.50727.4053 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.51011 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.56336 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.57102 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.58298 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.59192 False
- Microsoft Visual C++ 2005 Redistributable - x64 8.0.61000
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022.0 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022.218 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30411 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.0 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.17 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4048 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4148.0 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4148 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.5570 False
- Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161
- Microsoft Visual C++ 2010 Redistributable - x64 10.0.30319 False
- Microsoft Visual C++ 2010 Redistributable - x64 10.0.40219
- Microsoft Visual C++ 2012 Redistributable - x64 11.0.50727 False
- Microsoft Visual C++ 2012 Redistributable - x64 11.0.51106 False
- Microsoft Visual C++ 2012 Redistributable - x64 11.0.60610 False
- Microsoft Visual C++ 2012 Redistributable - x64 11.0.61030
- Microsoft Visual C++ 2013 Redistributable - x64 12.0.21005 False
- Microsoft Visual C++ 2013 Redistributable - x64 12.0.30501 False
- Microsoft Visual C++ 2013 Redistributable - x64 12.0.40649
- Microsoft Visual C++ 2015 Redistributable - x64 14.0.24210
/ShowFalse - отображение заглушек (False) в "Установка и Удаление программ" (Работает только при установке Microsoft Visual C++ Redistributable Package). Ключ не чувствителен к регистру.
/WithOutVC05 - установка без Microsoft Visual C++ 2005 Redistributable Package. Ключ не чувствителен к регистру.
/WithOutVC08 - установка без Microsoft Visual C++ 2008 Redistributable Package. Ключ не чувствителен к регистру.
/WithOutVC10 - установка без Microsoft Visual C++ 2010 Redistributable Package. Ключ не чувствителен к регистру.
/WithOutVC12 - установка без Microsoft Visual C++ 2012 Redistributable Package. Ключ не чувствителен к регистру.
/WithOutVC13 - установка без Microsoft Visual C++ 2013 Redistributable Package. Ключ не чувствителен к регистру.
/WithOutVC15 - установка без Microsoft Visual C++ 2015 Redistributable Package. Ключ не чувствителен к регистру.
/DisableVssOff - установка Microsoft Visual C++ Redistributable Package без отключения vss-службы. По-умолчанию vss-служба отключается для ускорения установки. Ключ не чувствителен к регистру.
/DisableWuauServStop - установка Microsoft Visual C++ Redistributable Package без остановки wuauserv-службы. По-умолчанию wuauserv-служба останавливается для ускорения установки. Ключ не чувствителен к регистру.
/GetListProg - получение списка установленных программ в операционной системе, без последующей установки Microsoft Visual C++ Redistributable Package. Этот ключ актуален для тех, кто хочет посмотреть установлены ли заглушки (False). Ключ не чувствителен к регистру.
/DelVC05 - удаление ранее установленных Microsoft Visual C++ 2005 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.
/DelVC08 - удаление ранее установленных Microsoft Visual C++ 2008 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.
/DelVC10 - удаление ранее установленных Microsoft Visual C++ 2010 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.
/DelVC12 - удаление ранее установленных Microsoft Visual C++ 2012 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.
/DelVC13 - удаление ранее установленных Microsoft Visual C++ 2013 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.
/DelVC15 - удаление ранее установленных Microsoft Visual C++ 2015 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.
Грубо говоря, тут все в одном месте. По ходу установки, она удаляет старые версии (но у меня удаления не проходили). Все. Установка данного пакета полностью решили все проблемы :)
Рекомендации по повышению производительности Visual Studio предназначены для редких ситуаций, когда может возникать нехватка памяти. В таких случаях можно оптимизировать определенные компоненты Visual Studio, которые могут не использоваться. Приведенные ниже советы не следует рассматривать как общие рекомендации.
Если при работе с продуктом у вас возникают затруднения из-за проблем с памятью, свяжитесь с нами через средство обратной связи.
Использование 64-разрядной ОС
При переходе с 32-разрядной на 64-разрядную версию Windows вы увеличиваете объем виртуальной памяти, доступной Visual Studio, с 2 до 4 ГБ. Это позволяет Visual Studio обрабатывать значительно большие рабочие нагрузки даже несмотря на то, что это 32-разрядный процесс.
Visual Studio 2022 для Windows теперь является 64-разрядным приложением. Это означает, что вы можете открывать, изменять, запускать и отлаживать даже самые большие и сложные решения, не беспокоясь о нехватке памяти. Дополнительные сведения см. в записях блога, посвященных концепции Visual Studio 2022 и Visual Studio 2022, предварительная версия 1.
Отключение автоматического восстановления файлов
Visual Studio автоматически повторно открывает документы, открытые во время предыдущего сеанса. Это может увеличить время загрузки решения до 30 % или более в зависимости от типа проекта и открываемых документов. Конструкторы, например Windows Forms и XAML, и некоторые файлы JavaScript и typescript могут открываться медленно.
Visual Studio отображает уведомление на желтой панели, если автоматическое восстановление документа значительно замедляет загрузку решения. Вы можете отключить автоматическое повторное открытие файлов, выполнив следующие действия.
Выберите пункты меню Сервис > Параметры, чтобы открыть диалоговое окно Параметры.
На странице Проекты и решения > Общие отмените выбор пункта Повторно открыть документы при загрузке решения.
Если отключить автоматическое восстановление файлов, быстро перейти к нужным файлам можно с помощью одной из команд Перейти к:
Чтобы использовать общие функции Перейти к, выберите Изменить > Перейти к > Перейти ко всем или нажмите CTRL+T.
Перейдите к последней правке в решении, выбрав Изменить > Перейти к > Перейти к последнему изменению или нажав CTRL+SHIFT+BACKSPACE.
Используйте Перейти к последнему файлу, чтобы просмотреть список недавно просмотренных файлов в решении. Выберите Изменить > Перейти к > Перейти к последнему файлу или нажмите CTRL+1, CTRL+R.
Настройка параметров отладки
Если вы часто сталкиваетесь с нехваткой памяти во время сеансов отладки, можно оптимизировать производительность, внеся одно или несколько изменений в конфигурацию.
Включение функции "Только мой код"
Чтобы включить функцию Только мой код, выберите Сервис > Параметры > Отладка > Общие и затем Включить только мой код.
Указание символов для загрузки
При отладке машинного кода для загрузки файлов символов ( .pdb) требуется большой объем памяти. Вы можете настроить параметры отладочных символов для экономии памяти. Как правило, решение настраивается для загрузки только модулей из проекта.
Чтобы указать загрузку символов, выберите Сервис > Параметры > Отладка > Символы.
Задайте параметр Только указанные модули вместо Все модули и затем укажите, какие модули нужно загружать. Во время отладки также можно щелкнуть определенные модули правой кнопкой мыши в окне Модули, чтобы явно включить модуль в загрузку символов. (Чтобы открыть окно во время отладки, выберите Отладка > Окна > Модули.)
Дополнительные сведения см. в разделе Общие сведения о файлах символов.
Отключение средств диагностики
Рекомендуется отключить профилирование ЦП после использования. Эта функция может потреблять очень много ресурсов. После включения профилирования ЦП это состояние распространяется и на все последующие сеансы отладки, поэтому его следует отключать явным образом. Вы можете сэкономить ресурсы, отключив средства диагностики при отладке, если некоторые предоставляемые функции вам не нужны.
Для отключить Средства диагностики, запустите сеанс отладки, выберите Средства > Параметры > Отладка > Общие и снимите флажок Включить средства диагностики при отладке.
Дополнительные сведения см. в статье Средства профилирования.
Отключение инструментов и расширений
Для повышения производительности можно отключить некоторые инструменты или расширения.
Часто проблемы производительности можно выявить, отключая расширения по одному и проверяя уровень производительности.
Управляемые службы языка (Roslyn)
Отключение полного анализа решения
Отключение CodeLens
Visual Studio выполняет задачу Найти все ссылки для каждого метода при его отображении. CodeLens предоставляет такие функции, как встроенное отображение числа ссылок. Эта работа выполняется в отдельном процессе, например ServiceHub.RoslynCodeAnalysisService32. В крупных решениях или системах с небольшим объемом ресурсов эта функция может значительно снижать производительность. В случае возникновения проблем с памятью, например при загрузке большого решения на компьютере с 4 ГБ памяти или высокой загрузки ЦП при выполнении этого процесса, попробуйте отключить CodeLens для высвобождения ресурсов.
Чтобы отключить CodeLens, выберите Сервис > Параметры > Текстовый редактор > Все языки > CodeLens и отмените выбор данной функции.
Функция CodeLens доступна в выпусках Visual Studio Professional и Enterprise.
Другие инструменты и расширения
Отключение расширений
Расширения — это дополнительные программные компоненты в Visual Studio, которые предоставляют новые или расширяют имеющиеся функциональные возможности. Расширения часто могут выступать источником проблем с памятью. При возникновении подобных проблем попробуйте отключать расширения по одному за раз, чтобы оценить, как это влияет на сценарий или рабочий процесс.
Чтобы отключить расширения, перейдите в раздел Сервис > Расширения и обновления и отключите нужное расширение.
Чтобы отключить расширения, перейдите в меню Расширение > Управление расширениями и отключите нужное расширение.
Отключение режима карты
В режиме карты на полосе прокрутки показывается миниатюрное изображение строк кода. Режим карты включен по умолчанию.
Чтобы отключить режим карты, последовательно выберите Инструменты > Параметры > Текстовый редактор > Все языки > Полосы прокрутки, а затем в разделе Поведение снимите флажок Использовать режим карты для вертикальной полосы прокрутки.
Отключение переноса по словам
При включенном переносе по словам отображается часть длинной строки кода, выступающая за пределы текущей ширины окна редактора кода. Перенос по словам включен по умолчанию.
Чтобы отключить перенос по словам для проекта, над которым вы работаете в текущий момент, последовательно выберите в меню пункты Правка > Дополнительно > Перенос по словам. (Этот параметр можно переключать с помощью одних и тех же команд меню.)
Чтобы отключить перенос по словам для всех проектов, последовательно выберите в меню пункты Инструменты > Параметры > Общие > Текстовый редактор > Все языки > Общие, а затем в разделе Параметры снимите флажок Перенос по словам.
Отключение конструктора XAML
Конструктор XAML по умолчанию включен, но потребляет ресурсы только при открытии файла .xaml. Если вы работаете с XAML-файлами, но не хотите использовать функциональные возможности конструктора, отключите его, чтобы освободить память.
Чтобы отключить конструктор XAML, последовательно выберите в меню пункты Инструменты > Параметры > Конструктор XAML > Включить конструктор XAML, а затем снимите этот флажок.
Удаление рабочих нагрузок
Если вы не собираетесь использовать определенные рабочие нагрузки, удалите их с помощью установщика Visual Studio. Это позволяет оптимизировать расходы ресурсов при запуске и выполнении за счет пропуска ненужных пакетов и сборок.
Добавление неотслеживаемых файлов в локальный файл .gitignore
Visual Studio выполняет команду Git git status для неотслеживаемых файлов, чтобы вам было удобно добавлять новые файлы в репозиторий. При наличии большого количества неотслеживаемых файлов git status может потреблять большой объем памяти. Чтобы сделать эти файлы игнорируемыми и повысить производительность git status , можно добавить такие файлы или папки в локальный файл .gitignore. Чтобы получить доступ к файлу, выберите Git > Параметры > Параметры репозитория Git. Затем в разделе файлы Git щелкните Добавить, чтобы создать файл .gitignore, или щелкните изменить, если он у вас уже есть.
Принудительная сборка мусора
Среда CLR использует систему управления памятью, подразумевающую сборку мусора. В этой системе память иногда используется объектами, которые больше не нужны. Это временное состояние — сборщик мусора освободит эту память, основываясь на своей эвристике производительности и использования ресурсов. Вы можете заставить среду CLR собрать всю неиспользуемую память, используя сочетание клавиш в Visual Studio. Если имеется значительный объем мусора, ожидающего сборки, то принудительная сборка мусора позволяет снизить использование памяти процессом devenv.exe в диспетчере задач. Потребность в этом методе возникает довольно редко. Тем не менее после завершения операции, потребляющей много ресурсов (такой как полная сборка, сеанс отладки или событие открытия решения), он может помочь определить объем памяти, действительно используемый процессом. Так как среда Visual Studio является смешанной (управляемый и машинный код), собственный распределитель и сборщик мусора могут конкурировать за ограниченные ресурсы памяти. В условиях высокого использования памяти это может помочь принудительно запустить сборщик мусора.
Чтобы принудительно запустить сборку мусора, используйте сочетание клавиш: CTRL+ALT+SHIFT+F12, CTRL+ALT+SHIFT+F12 (нажмите два раза).
Если принудительная сборка мусора обеспечивает работоспособность сценария, направьте отчет с помощью средства обратной связи Visual Studio, так как подобное поведение, скорее всего, указывает на ошибку.
Подробное описание сборщика мусора CLR см. в статье Основы сборки мусора.
После написания прошлой статьи, я понял, что у меня осталось еще некоторое количество информации, не относящейся к ускорению компиляции решения, но позволяющей несколько повысить производительность самой Visual Studio в процессе работы над кодом. А поскольку мы все-таки работаем над кодом изрядное количество времени, намного приятнее делать это в быстро работающей IDE. К сожалению, в этой статье не будет графиков, поскольку весьма тяжело измерить, насколько стало быстрее открываться меню или какое-то окно. Тем не менее, я надеюсь, что кто-то может найти для себя в этих советах что-то ценное и сэкономить себе немного времени.
Добавьте /nosplash к ярлыку запуска Visual Studio
Честно говоря, время запуска уменьшится не сильно, но психологически будет казаться, что Студия грузится быстрее.
Отключите кнопку F1
Это делается в «Environment->Keyboard». Вы ведь всё-равно не пользуетесь этой кнопкой, правда? А если случайно нажмёте, то, в зависимости от версии VS начнут открываться новые окна или запуститься браузер — всё это весьма долго.
Выключите анимацию
«Environment->General->Animate environment tools». Оставим анимацию фанатам красивостей. А мы ведь суровые программисты, нам ни к чему.
Отключите стартовую страницу
Она занимает время при запуске студии (в особенности, если лезет в Интернет за всякими новостями и советами). Отключается в «Environment->Startup».
Выключите «Track Active Item in Solution Explorer»
Неужели Вы правда ею пользуетесь? Если нет — выключите. Отключается в «Projects and Solutions»
Отключение разнообразных красивостей
Вот тут об этом написано детальнее. Отключается в «Environment->General->Visual experience»
Удаление лишних плагинов
Каждый плагин — это минус к производительности Студии. Если у Вас стоит что-то лишнее — удаляйте.
- Закройте Visual Studio.
- Удалите все .ncb файлы для Вашего решения.
- Удалите или переименуйте файл C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\feacp.dll (часть «9.0» отличается для разных версий Visual Studio).
Запуск Студии и компиляция проекта перед приходом на работу
На моей рабочей машине каждое утро, за час до моего прихода на работу запускается скрипт, закрывающий Visual Studio, делающий update кода из репозитория и по-новому запускающий Студию и компиляцию решения в ней. Приходя на работу я вижу откытую IDE, в которой сразу видно текущее состояние решения (компилируется\нет) и лог процедуры update, по которой понятно что именно изменилось со вчерашнего вечера. Всё это экономит мне 10 минут ежедневно.
Читайте также: