楼主: astraes
6512 3

如何释放内存,proc release具体用法 [推广有奖]

  • 0关注
  • 0粉丝

博士生

32%

还不是VIP/贵宾

-

威望
0
论坛币
188 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
38292 点
帖子
56
精华
0
在线时间
468 小时
注册时间
2009-8-13
最后登录
2016-12-9

楼主
astraes 发表于 2009-12-23 11:12:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
由于我利用循环语句处理数据,每次循环时数据量非常大,结果发现随着循环次数的增加,运行的速度越来越慢,因此我想在每次循环结束时将内存释放出来,应该怎么做?我查到"PROC RELEASE"似乎可以,但我具体怎么用,希望高手指点一下,谢谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Release Lease 释放内存 ease Lea 释放内存

回帖推荐

bobguy 发表于2楼  查看完整内容

1# astraes First the proc release is to disk space instead of RAM. It is Not going to help in your case. Here is details PROC RELEASE can be used with most sequential or partitioned data sets, not just with a SAS library that contains SAS data sets. However, PROC RELEASE is not supported for, and cannot be used to release unused space from, the following types of data sets: [*]the SAS ...

本帖被以下文库推荐

沙发
bobguy 发表于 2009-12-23 12:01:51
1# astraes

First the proc release is to disk space instead of RAM. It is Not going to help in your case. Here is details


Details
PROC RELEASE can be used with most sequential or partitioned data sets, not just with a SAS library that contains SAS data sets. However, PROC RELEASE is not supported for, and cannot be used to release unused space from, the following types of data sets:
  • the SAS WORK library
  • extended partitioned data sets (PDSEs)
  • ISAM or VSAM data sets
  • multivolume SAS libraries
  • external multivolume data sets.

Second if you pose a sample you problem, it will help others to understand what is you bottle-neck in your programs.

HTH
已有 2 人评分经验 论坛币 学术水平 收起 理由
bakoll + 3 + 3 精彩帖子
爱萌 + 1 good

总评分: 经验 + 3  论坛币 + 3  学术水平 + 1   查看全部评分

藤椅
astraes 发表于 2009-12-23 16:49:35
虽然我用了“dm "out;clear;log;clear;"; ”命令,但好像只是清除了输出窗口,每次循环用到的数据和生成的数据还是留在了内存中,这样就导致随着随机次数的增加,内存占用就越来越大,使得每一次循环都要比上一次慢,我怎么才能清空呢?

板凳
bobguy 发表于 2009-12-23 22:57:06
3# astraes

What you did is nothing to do with RAM/Memory.

As I undersatand, before SAS executes a program(data step/procs), SAS complier will calculate the memory requirments. If it cannot allocate memories, it issues an error. A User does/is not need/allowed to manage the memory allocation.

30   data _null_;
31     array x (1000000000) _temporary_;
FATAL: Insufficient memory to execute DATA step program. Aborted during the COMPILATION phase.
NOTE: The SAS System stopped processing this step because of insufficient memory.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

32     stop;
33     run;

You may be better off to pose your problem in details, others may come up a better idea for your problem.

HTH

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 10:03