Иногда вентилятор процессора не запускается

В то время как то, что время порождения и установки новый процесс и загрузки, выполнения и инициализации, чистки и завершения программы и ее зависимостей библиотеки в ней омрачает безусловно на самом деле время, должно было работать, действие было уже покрыто, вот некоторые синхронизации с различным printf реализации для одного дорогого действия, которое не омрачено остальными:

$ time /usr/bin/printf %2000000000s > /dev/null
/usr/bin/printf %2000000000s > /dev/null  13.72s user 1.42s system 99% cpu 15.238 total

$ time busybox printf %2000000000s > /dev/null
busybox printf %2000000000s > /dev/null  1.50s user 0.49s system 95% cpu 2.078 total


$ time bash -c 'printf %2000000000s' > /dev/null
bash -c 'printf %2000000000s' > /dev/null  4.59s user 3.35s system 84% cpu 9.375 total

$ time zsh -c 'printf %2000000000s' > /dev/null
zsh -c 'printf %2000000000s' > /dev/null  1.48s user 0.24s system 81% cpu 2.115 total

$ time ksh -c 'printf %2000000000s' > /dev/null
ksh -c 'printf %2000000000s' > /dev/null  0.48s user 0.00s system 88% cpu 0.543 total

$ time mksh -c 'printf %2000000000s' > /dev/null
mksh -c 'printf %2000000000s' > /dev/null  13.59s user 1.57s system 99% cpu 15.262 total

$ time ash -c 'printf %2000000000s' > /dev/null
ash -c 'printf %2000000000s' > /dev/null  13.74s user 1.42s system 99% cpu 15.214 total

$ time yash -c 'printf %2000000000s' > /dev/null
yash -c 'printf %2000000000s' > /dev/null  13.73s user 1.40s system 99% cpu 15.186 total

Вы видите что, по крайней мере, в том отношении, GNU printf не был оптимизирован для производительности. Нет большого количества точки, оптимизируя команду как printf так или иначе, потому что для 99,999% использований, потраченное выполнение времени действия будет омраченным временем выполнения так или иначе. Это имеет намного больше смысла оптимизировать команды как grep или sed это может потенциально обработать гигабайты данных в одном выполнении.

4
08.01.2015, 03:09
2 ответа

Убедитесь, что ваша системная прошивка полностью актуальна. Это звучит как проблема ACPI, которая не так хорошо проверена на Linux, как в Windows.

0
27.01.2020, 21:01

Как gcc , так и clang относятся к некоторым переменным среды, которые могут помочь достичь желаемого. Попробуйте добавить их в ~/.bashrc :

export CFLAGS="-I /usr/local/cuda/include"
export LDFLAGS="-L /usr/local/cuda/lib"

Однако это обычно не делается на глобальном уровне - различные проекты нуждаются в различных include и libs, чтобы настроить пользовательские каталоги include и lib для каждого проекта в Makefile или с помощью ./configure .

-121--133674-
for f do exec <"$f"
    : handle stdin
done

Неинтерактивная оболочка будет обрабатывать любое перенаправление из файла, который не может быть прочитан или который не существует при связывании со специальной компоновкой, как фатальную ошибку, и немедленно завершит работу с содержательным диагностическим сообщением, записанным в stderr. Таким образом, ваши параметры являются действительными, читаемыми файлами, и приведенная выше инструкция не сделает ничего полезного, пока вы не замените :... часть с/что-то полезное, или пользователь предоставил недопустимый параметр, и сценарий завершает работу.

Когда вы это делаете...

for var in ...; do : compound command list on "$var"; done

Бит в...; является необязательным оператором в синтаксисе, который позволяет заменить набор параметров для набора по умолчанию, который является вашим списком аргументов.

Так что...

for var do : compound command list on "$var"; done

... это, вероятно, то, что вы ищете, здесь.

for f do exec <"$f"
    : now do some stuff w/ stdin
done

... где оболочка будет итеративно присваивать stdin и проверять в качестве читаемых файлов любые аргументы, предоставленные сценарием для всех команд, следующих за инструкцией exec , пока не будут исчерпаны все параметры и не будет выполнен цикл для . Если он не может сделать это, он будет отформатировать и напечатать сообщение об ошибке для вас в стандартной форме, к которой пользователь уже привык.

-121--186486-

Проблема, которую вы получаете, может быть аппаратной проблемой той же, с которой вы столкнулись сейчас у одного из моих друзей. Когда-то его вентилятор не работает, и иногда это работает нормально Это произошло из-за пыли или может быть проблема с вентилятором.

то, что я сделал, чтобы решить проблему.

Сначала я очистил его с помощью пистолета-воздуходувки, затем, когда он не был запущен, затем я слегка толкнул вентилятор ЦП иглой (будьте осторожны во время подталкивания удалить иглу быстро), затем вентилятор внезапно начал и работал нормально в течение нескольких месяцев.

После этого он столкнулся с той же проблемой, решенной заменой вентилятора.

Я думаю, что это не будет проблемой ОС. Если это происходит каждый раз, когда вы приостанавливаете работу вентилятора CPU, он не должен запускаться.

1
27.01.2020, 21:01

Теги

Похожие вопросы