2021美賽準備 記憶體管理(R語言)

2021-10-17 14:57:56 字數 3174 閱讀 9683

總結win 10中的r語言常見的記憶體管理命令在基礎包和pryr包裡,我一般處理大點的資料單純用基礎包裡的函式,所以本文介紹的命令來自基礎包的函式。

因為r裡的記憶體上限和電腦的配置是有關係的,所以先給大家看一下相關的引數。

我的電腦是8g的運存。大家在此電腦->右鍵->屬性可以檢視自己電腦的記憶體。

我用的r3.6.2的版本,一年前的版本了,版本不是越新越好,當然只要別太老。一般只要自己的版本不出問題用就是了。當然說一句,預設的記憶體上限和版本沒關係。

下面是版本資訊:

r version 3.6.2(

2019-12

-12)-

-"dark and stormy night"

2019 the r foundation for statistical computing

platform: x86_64-w64-mingw32/x64 (

64-bit)

r是自由軟體,不帶任何擔保。

在某些條件下你可以將其自由散布。

用'license()'或'licence()'來看散布的詳細條件。

r是個合作計畫,有許多人為之做出了貢獻.

用'contributors()'來看合作者的詳細情況

用'citation()'會告訴你如何在出版物中正確地引用r或r程式包。

用'help.start()'通過html瀏覽器來看幫助檔案。

用'q()'退出r.

函式memory.size是用來檢視和設定r語言記憶體的,先給出示例,在說具體注意事項。

> memory.size(na)

[1]8112.24

> memory.size(

8000)[

1]8112.24

warning message:

in memory.size(

8000

): 無法減少記憶體極限:忽視不用

> memory.size(

9000)[

1]9000

> memory.size(na)

[1]9000

memory.size(f)

#檢視當前已使用的記憶體[1

]28.54

說明:

– 引數是na時,檢視預設的記憶體上限,我的電腦是8g記憶體,所以他的預設上限是8112,同理:你的電腦是4g預設就是4000+、是32g預設就是32000+

– 可以像memory.size(8000)設定r語言的占用記憶體上限,但是上面例子也看到了只能往高了設定。

– 引數是f時,可以檢視已經使用可多少記憶體。

– 問題來了,記憶體是否可以無限的加。就是你的電腦是8g,你設定到20000也就是想像20g運存的電腦一樣處理資料。具體實踐可以知道:這個上限可以適度的調整,我最多調到過10000。也就是自身記憶體上浮20%這裡不建議上調太多

– 可以上調,不建議上調太多。

這個函式是基礎函式,給個例子就不具體講解了。

函式體:

> rm

function

(...

, list = character(

), pos =-1

, envir = as.environment(pos)

, inherits =

false

)0x000000001523b598

>

例子:

> data

x y11

2223

3344

4555

6667

7788

8999

1010

1011

> rm(data)

> data

錯誤: 找不到物件'data'

不用的變數及時清除、不要相同資料用兩個變數訪問。

使用rm函式清理完之後記憶體可能不會及時釋放,可以執行一下這個函式釋放記憶體。

函式體:

> gc

function

(verbose = getoption(

"verbose"

), reset =

false

, full =

true

)0x000000001206a6a0

>

例子:

> data 

10, y =2:

11)> data

x y11

2223

3344

4555

6667

7788

8999

1010

1011

> gc(

) used (mb) gc trigger (mb) max used (mb)

ncells 280221

15.0

621691

33.3

427419

22.9

vcells 690074

5.38388608

64.0

2553615

19.5

> data

x y11

2223

3344

4555

6667

7788

8999

1010

1011

>

2021美賽MCM選題

a題為環境科學類題,需要參閱較多文獻後建立模型,題設角度較多,建議學過生物 生態 化學系同學選擇,題目難度適中,不建議初學者選擇 和無人機有關,在19年美賽好像出現過類似題目,第一問是運籌學問題,第二問可以用到多種 模型,第三問就需要通過多種因素,建立模型來判斷在不同大小的火災,不同地形中無人機的位...

2021美賽D題思路

團隊為建模國一獲得者,有豐富建模經驗,因為需保證建模思路的完整性,更新較慢,怕被d 新號。問題一 使用impact data資料集或其中的一部分來建立 影響力的 多個 定向網路,將影響者連線到追隨者。開發可捕獲此網路中 影響力 的引數。通過建立定向影響者網路的子網來探索 影響力的子集。描述此子網。您...

2021美賽建模 A題真菌思路

a題是研究不同種類的真菌在不同的內部 外部條件下,對枯枝落葉和木質纖維的分解作用的問題。題目中的一些重點為生長緩慢的真菌菌株往往能夠更好地在濕度和溫度等環境變化的情況下適應和生長,而生長較快的菌株往往對同樣的變化不那麼容易適應 生長速率和耐濕性與分解速率之間的關係 主要目標是在給定的土地上模擬木本纖...