Как проверить размер цели внешнего указателя в R - PullRequest
3 голосов
/ 12 марта 2019

Рассмотрим это демо

# R Session shows 118 MB memory usage in Activity Monitor

# Load xgboost
library(xgboost)

# Build matrix
myMatrix <- matrix(data = sample(10 * 10^8, replace = T), ncol = 10)
object.size(myMatrix)   # 4000000216 bytes

# R Session shows 7.69 GB memory usage in Activity Monitor

# Build xgb.DMatrix
myDMatrix <- xgb.DMatrix(data = myMatrix)
object.size(myDMatrix)  # 472 bytes

# R Session shows 15.88 GB memory usage in Activity Monitor

Здесь я

  1. Сделать большую матрицу
  2. Сделайте xgb.DMatrix из моей большой матрицы.

Из моего понимания xgb.DMatrix(data = myMatrix) в основном создает копию myMatrix где-то в памяти и сохраняет указатель на эту копию. Однако R имеет доступ только к указателю, поэтому моя среда R создает иллюзию малого размера xgb.DMatrix.

Я могу использовать монитор активности Mac, чтобы увидеть, что большой кусок памяти выделяется для моей R-сессии, когда я вызываю xgb.DMatrix(data = myMatrix).

У меня вопрос от R, как я могу проверить размер объекта, созданного xgb.DMatrix(data = myMatrix), то есть того, на что указывает myDMatrix?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...