Добавление пространства подкачки позволило бы Raspberry Pi использовать SD-карту в качестве дополнительной памяти. Доступ к этой памяти будет очень медленным, но он может быть полезен в подобных случаях.
Чтобы создать файл подкачки, вам нужно выполнить эти команды. В этих инструкциях предполагается, что файл подкачки может быть создан в корневом каталоге. Вы можете изменить это в зависимости от настроек, чтобы обеспечить создание файла на SD-карте.
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
Чтобы затем использовать файл подкачки, выполните следующую команду. Обратите внимание, что вам нужно будет запускать эту команду при каждой загрузке.
sudo swapon /swapfile
Чтобы убедиться, что все прошло как положено, вы можете использовать эту команду для проверки состояния вашей памяти.
free -h
Вам нужно будет запустить эту команду для автоматического добавления файла подкачки.
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Для получения дополнительной информации ознакомьтесь с этой статьей: https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04 [ 114]
Отличный вопрос: Чем наш
отличается от мой
и чем наш
делает?
Резюме:
Доступный с Perl 5, my
- это способ объявления:
$ package_name :: variable
. С другой стороны, наши
переменные:
$ package_name :: variable
. Объявление переменной с помощью наш
позволяет вам предварительно объявить переменные, чтобы использовать их в , используйте strict
без получение предупреждений об опечатках или ошибок времени компиляции. Начиная с Perl 5.6, он заменил устаревшие use vars
, которые имели только файловую область видимости, а не лексическую, как наш
.
Например, формальное квалифицированное имя для переменной $ x
внутри пакета main
используется значение $ main :: x
. Объявление нашего $ x
позволяет вам использовать голую переменную $ x
без штрафа (т. Е. Без результирующей ошибки) в области объявления, когда сценарий использует используйте strict
или используйте strict "vars"
. Объем может быть один, два или несколько пакетов,
Ссылки на PerlMonks и PerlDoc от cartman и Olafur являются отличным справочником - ниже моя трещина в резюме:
мои
переменные лексически ограничены в пределах одного блока, определенного {}
или в том же файле, если не в {}
s , Они недоступны из пакетов / подпрограмм, определенных вне той же лексической области / блока.
my
используется для локальных переменных, тогда как наш
используется для глобальных переменных.
Подробнее читайте в Variable Scoping in Perl: the основы .
perldoc имеет хорошее определение нашего.
В отличие от my, который одновременно выделяет хранилище для переменной и связывает простое имя с этим хранилищем для использования в текущей области, наш связывает простое имя с переменной пакета в текущем пакете для использовать в рамках текущего объема. Другими словами, у нас те же правила области видимости, что и у меня, но не обязательно создает переменную.
Coping with Scoping is a good overview of Perl scoping rules. It's old enough that our
is not discussed in the body of the text. It is addressed in the Notes section at the end.
The article talks about package variables and dynamic scope and how that differs from lexical variables and lexical scope.
An example:
use strict;
for (1 .. 2){
# Both variables are lexically scoped to the block.
our ($o); # Belongs to 'main' package.
my ($m); # Does not belong to a package.
# The variables differ with respect to newness.
$o ++;
$m ++;
print __PACKAGE__, " >> o=$o m=$m\n"; # $m is always 1.
# The package has changed, but we still have direct,
# unqualified access to both variables, because the
# lexical scope has not changed.
package Fubb;
print __PACKAGE__, " >> o=$o m=$m\n";
}
# The our() and my() variables differ with respect to privacy.
# We can still access the variable declared with our(), provided
# that we fully qualify its name, but the variable declared
# with my() is unavailable.
print __PACKAGE__, " >> main::o=$main::o\n"; # 2
print __PACKAGE__, " >> main::m=$main::m\n"; # Undefined.
# Attempts to access the variables directly won't compile.
# print __PACKAGE__, " >> o=$o\n";
# print __PACKAGE__, " >> m=$m\n";
# Variables declared with use vars() are like those declared
# with our(): belong to a package; not private; and not new.
# However, their scoping is package-based rather than lexical.
for (1 .. 9){
use vars qw($uv);
$uv ++;
}
# Even though we are outside the lexical scope where the
# use vars() variable was declared, we have direct access
# because the package has not changed.
print __PACKAGE__, " >> uv=$uv\n";
# And we can access it from another package.
package Bubb;
print __PACKAGE__, " >> main::uv=$main::uv\n";