楼主: yukai08008
4510 5

[学习分享] 计算程序运行时间_tips2 [推广有奖]

  • 2关注
  • 17粉丝

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
2176 个
通用积分
3.0600
学术水平
10 点
热心指数
7 点
信用等级
7 点
经验
5915 点
帖子
120
精华
0
在线时间
556 小时
注册时间
2012-11-28
最后登录
2022-4-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
参考:https://bbs.pinggu.org/thread-1392911-1-1.html
***********************************************************************
sas只提供了每个数据步/过程步的运行时间,如果过程流有比较多的程序以及与其他接口有交互的话,就需要自己做一些运算。
在第一个程序中嵌入以下代码,把读到的系统时间放到全局宏变量start里面。
/*开始计时*/
data _null_;
/*datetime()*/
a=time();
call symput('start',a);
run;


在最后一个程序里嵌入以下代码,结果输出到日志里:
data _null_;
a=time();
b=a-&start;
put b time.;
run;

二维码

扫码加我 拉你入群

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

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

关键词:Tips 运行时间 计算程序 IPS tip 程序

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
孤单的我们 + 5 + 1 + 1 + 1 观点有启发

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

沙发
co_fund 发表于 2016-2-16 16:44:13 |只看作者 |坛友微信交流群
以下是我用的方法:
%let start=%sysfunc(time());

data a;
do i=0 to 1000000000;
end;
run;

%let end=%sysfunc(time());
data _null_;
a=intck("second",&start.,&end.);
put a "Seconds";
run;

使用道具

藤椅
yukai08008 在职认证  发表于 2016-2-16 21:20:32 |只看作者 |坛友微信交流群
co_fund 发表于 2016-2-16 16:44
以下是我用的方法:
%let start=%sysfunc(time());
看着更干净,哈哈。不过可以的话最好少调用函数,a=&end-&start 比调用intck效率要高一些。

使用道具

板凳
co_fund 发表于 2016-2-17 08:28:25 |只看作者 |坛友微信交流群
yukai08008 发表于 2016-2-16 21:20
看着更干净,哈哈。不过可以的话最好少调用函数,a=&end-&start 比调用intck效率要高一些。
你说得对,而且精度还变高了,感谢

使用道具

报纸
冰族王子 发表于 2018-10-16 10:22:33 |只看作者 |坛友微信交流群
co_fund 发表于 2016-2-16 16:44
以下是我用的方法:
%let start=%sysfunc(time());
谢谢分享

使用道具

地板
冰族王子 发表于 2018-10-16 10:22:52 |只看作者 |坛友微信交流群
yukai08008 发表于 2016-2-16 21:20
看着更干净,哈哈。不过可以的话最好少调用函数,a=&end-&start 比调用intck效率要高一些。
谢谢分享

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 20:13