Categories: Компьютеры, Linux, Железо, Игры, ПрограммированиеПро C++Современный C++ всё-таки странная штука. template<typename Func, typename Obj, typename Arg, typename = void> struct is_callable_with_arg : std::false_type {}; template<typename Func, typename Obj, typename Arg> struct is_callable_with_arg<Func, Obj, Arg, std::void_t<decltype((std::declval<Obj>().*std::declval<Func>())(std::declval<Arg>()))>> : std::true_type {}; void call_impl(VAR_TYPE arg, std::true_type) { (clz_->*sig_)(arg); } void call_impl(VAR_TYPE, std::false_type) { (clz_->*sig_)(); } ... call_impl(var_, std::integral_constant<bool, is_callable_with_arg<MEMBER, CLASS, VAR>::value>{}); Устранение тормозов и 100% зажора CPU Linux/VMWare Player на Intel Core i7Симптомы - с определённой периодичностью виртуальная машина съедает на несколько минут 100% от каждого выданного ей процессора (т.е. на 4 ядра - загрузка 400% и т.п.), при этом хост притормаживает, а виртуалка вообще неуправляема, т.к. даже движения мышки отрабатываются с огромной задержкой. В это время внутри виртуалки нет процессов, занимающих столько CPU. При этом, на хостах AMD такой проблемы нет. После долгих мучений, рабочий ответ, наконец, найден тут:
Ловим процессы, которые шарятся по винту (Linux)Как отследить приложения, которые приводят к внезапному ворчанию винтов по ночам, не дают жёсткому диску уйти в спящий режим или регулярно будят его. iotopЕсли ввод-вывод активный и идёт прямо сейчас, достаточно просто посмотреть на sudo iotop -oЕсли ввод-вывод идёт небольшими порциями, то используем: sudo iotop -bktoqqq -d .5 Пояснение: -b - пакетный режим вывода, -k - килобайты, -t - показывать время, -o - показывать только потоки, которые занимаются вводом-выводом, -qqq - отключить заголовки, -d 0.5 - период обновления в секундах. Поймав, какой процесс занимается работой с диском, можно посмотреть на его открытые файлы: lsof -p $PID (замените $PID на номер интересующего процесса). fatraceЭто намного более удобный способ для отслеживания редких операций (программа есть в репозитории Убунты). Сразу печатает кто, в какой файл лазит и какой доступ (чтение или запись).cd /mnt/каталог_куда_смонтирован_винт sudo fatrace -c -t P.S. Типичные злодеи - индексаторы файловой системы, их можно выпилить так: sudo apt remove locate mlocate plocate. См. askubuntu. Также постоянным желанием писать на диск страдает Yandex.Disk - демона синхронизации можно гасить, когда он не нужен. Файлы webp с расширением jpg из ВК (Linux/bash)ВК перешёл на фотографии в формате webp в мобильном клиенте, но когда вы их сохраняете в галерею он пишет их с разрешением jpg. В результате, некоторые программы работают с этими файлами неправильно. Вот этот небольшой скриптик позволяет рекурсивно пройти каталог с такими неправильно названными файлами и переименовать их правильно: Перенос корневой файловой системы на новый диск (Linux, Ubuntu)Это не универсальная инструкция, просто шпаргалка для себя. Мог что-то упустить
После этого перезагружаемся, выбирая при необходимости новый диск в качестве стартового в BIOS. Если всё ОК, можно отключать или форматировать и переиспользовать старый диск. Archives
|