Этот ответ не связан с размером объекта, но когда вы используете массив для размещения объектов; сколько объема памяти он выделит для объекта.
Таким образом, массивы, список или карта всех этих коллекций не будут храниться на самом деле (только во время примитивов реальный размер памяти объекта необходимо), он будет хранить только ссылки для этих объектов.
Теперь Used heap memory = sizeOfObj + sizeOfRef (* 4 bytes) in collection
PRIMITIVES
int [] intArray = new int [1]; will require 4 bytes.
long [] longArray = new long [1]; will require 8 bytes.
ОБЪЕКТЫ
Object[] objectArray = new Object[1]; will require 4 bytes. The object can be any user defined Object.
Long [] longArray = new Long [1]; will require 4 bytes.
Я хочу сказать, что для всего объекта REFERENCE требуется только 4 байта памяти. Это может быть ссылка на String или ссылка на Double object, но зависит от создания объекта. Необходимая память будет меняться.
например) Если я создаю объект для нижележащего класса ReferenceMemoryTest
, тогда 4 + 4 + 4 = 12 байтов памяти будет создана. При попытке инициализации ссылок память может отличаться.
class ReferenceMemoryTest {
public String refStr;
public Object refObj;
public Double refDoub;
}
Поэтому, когда создается массив объектов / ссылок, все его содержимое будет занято ссылками NULL. И мы знаем, что для каждой ссылки требуется 4 байта.
И, наконец, выделение памяти для кода ниже 20 байт.
ReferenceMemoryTest ref1 = new ReferenceMemoryTest (); (4 (ref1) + 12 = 16 байт) ReferenceMemoryTest ref2 = ref1; (4 (ref2) + 16 = 20 байт)
Вы можете попробовать сохранить текстовый файл. Например,
for i in 100:
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform((root_text[i], tweet_text[i]))
with open('outputFile.txt', mode = 'a') as f:
f.write(tfidf_matrix)
f.write('\n')