Ubuntu 13.10 64-битная версия показывает только 2,9 ГБ оперативной памяти

В Python существует различие между функциями и связанными методами.

>>> def foo():
...     print "foo"
...
>>> class A:
...     def bar( self ):
...         print "bar"
...
>>> a = A()
>>> foo

>>> a.bar
>
>>>

Связанные методы были "связаны" (как описательный) к экземпляру, и тот экземпляр будет передан как первый аргумент каждый раз, когда метод называют.

Callables, которые являются атрибутами класса (в противоположность экземпляру) все еще развязаны, тем не менее, таким образом, можно изменить определение класса каждый раз, когда Вы хотите:

>>> def fooFighters( self ):
...     print "fooFighters"
...
>>> A.fooFighters = fooFighters
>>> a2 = A()
>>> a2.fooFighters
>
>>> a2.fooFighters()
fooFighters

Ранее определенные экземпляры обновляются также (как долго, поскольку они не переопределили атрибут сами):

>>> a.fooFighters()
fooFighters

проблема возникает, когда Вы хотите присоединить метод к единственному экземпляру:

>>> def barFighters( self ):
...     print "barFighters"
...
>>> a.barFighters = barFighters
>>> a.barFighters()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: barFighters() takes exactly 1 argument (0 given)

функция автоматически не связывается, когда она присоединяется непосредственно к экземпляру:

>>> a.barFighters

Для привязки его мы можем использовать функция MethodType в модуле типов :

>>> import types
>>> a.barFighters = types.MethodType( barFighters, a )
>>> a.barFighters
>
>>> a.barFighters()
barFighters

На этот раз другие экземпляры класса не были затронуты:

>>> a2.barFighters()
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: A instance has no attribute 'barFighters'

[еще 1119] информация может быть найдена путем чтения [приблизительно 118] дескрипторов и программирование .

метакласса

2
задан 14.05.2020, 00:55

2 ответа

Для наблюдения, какую архитектуру (32bits=x86 или 64bits=x86_64) Вы установили:

arch

Для наблюдения общей RAM (в ГБ) программная часть системы обнаруживает:

free -h | awk 'NR>0{arr[$2]}END{for(i in arr) print i}' | grep G

Для наблюдения общей RAM (в гибибайте) аппаратная часть системы обнаруживает:

sudo lshw -class memory | grep GiB -m 1 

Для наблюдения каждого слота RAM и то, что делает систему, видит установленный в каждом*:

sudo lshw -class memory | grep GiB 

примечание: ГБ является гигабайтом (1000Ві байты, десятичная таблица), и гибибайт является гибибайтом (1024Ві байты, двоичная таблица). Нормально видеть точно, сколько RAM Вы имеете в гибибайте, и также нормально видеть немного меньше, чем "реальная" RAM, которую Вы имеете в ГБ. Просто говорящий.

<час>

В этом примере, я использую свою собственную систему, который:

  • это имеет 64 бита (x86_64) архитектура.
  • это использует 7,8 ГБ (= 8 ГиБ) RAM
  • , этому установили 8 ГиБ на материнской плате
  • , это имеет 4x, 2 ГиБ установили (2 ГиБ за слот)

примечание: "талья" означает "размер" на французском языке.

output example

<час>

Это должно помочь Вам сначала, я возвращусь, если я буду думать о чем-то еще. Надо надеяться, это будет реальный ответ, это - самое большее подсказка для проверки высказываний и что видит система.

3
ответ дан 14.05.2020, 00:56

При разгоне RAM, она не могла бы быть замечена правильно. Я должен был замедлить синхронизации немного для использования всей моей RAM. Надежда это помогает кому-то разгон.

Использование memtest, хотя, когда Вы разгоняетесь. Вы не хотите проблемы устойчивости.

0
ответ дан 14.05.2020, 00:56

Теги

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