Если вы использовали --module
, вы, вероятно, просто должны сделать:
import some_package
Другой подход к использованию ctypes:
import ctypes
my_package = ctypes.cdll.LoadLibrary('./some_package.so')
Определите размер каждого элемента и умножьте его на Dictionary.Count
Примерный способ определения размер использования объекта в памяти может быть выполняется путем проверки общей памяти до и после создания объект. В следующем примере это предполагается, что у вас есть класс с именем foo.
long StopBytes = 0; foo myFoo; long StartBytes = System.GC.GetTotalMemory (true); myFoo = новый foo (); StopBytes = System.GC.GetTotalMemory (истина); GC.KeepAlive (MYFOO); // Это гарантирует, что ссылка на объект сохраняет объект в памяти MessageBox.Show ("Размер" + ((длинный) (StopBytes - StartBytes)). ToString ());
В C # есть оператор sizeof, который работает так же, как и в C / C ++, но возвращает размер поля этого типа. Таким образом, для ссылочных типов (класс, а не структура) он всегда будет возвращать размер указателя (4 в 32-битных системах). Вместо этого используйте System.Runtime.InteropServices.Marshal.SizeOf ()
.
Я не верю, что существует какой-либо API, который даст вам истинный размер объекта, но его можно определить, измерив объем памяти, использованной до и после создания объекта; однако это на самом деле не является потокобезопасным.
Вы можете использовать System.Runtime.InteropServices.Marshal.SizeOf (), даже если это не даст вам точного размера, это даст вам точную точку сравнения, чтобы вы могли что-то сказать например: если размер объекта увеличивается на X%, удалите количество элементов Y.
Кроме того, вы можете попытаться сохранить промежуточную сумму, но если элементы в коллекции доступны для редактирования, вам нужно будет убедиться, что каждое добавление, удаление и редактирование включено в расчет. У вас все еще остается проблема с правильным измерением добавляемых и удаляемых элементов, и, как указано выше, я не
Когда вы добавляете что-то в словарь, рассчитывайте размер добавляемого элемента и сохраняйте сумму каждого добавленного элемента как одно целое значение, когда вы удаляете элемент из словаря, уменьшайте это значение.