楼主: cz851218
6372 37

连续时间段里面的最值 [推广有奖]

31
nkwilling 发表于 2010-5-11 16:42:00 |只看作者 |坛友微信交流群
就不要用什么HASH对象的东西在这里了,楼主你就用soporaeternus 的程序或者pandasasa第一个程序,简洁易懂.如果有兴趣者,可以测试不同程序的效率.

使用道具

32
cz851218 发表于 2010-5-11 16:42:19 |只看作者 |坛友微信交流群
30# cz851218

其中数据A中包含一只股票的DATE TIME CLOSE OPEN HIGH LOW这样六个变量 ,而C数据中含有DATE TIME LX SX四个变量。

使用道具

33
jingju11 发表于 2010-5-11 21:41:27 |只看作者 |坛友微信交流群
4# nkwilling

你的程序没有给出C变量。不过,也是出乎意料的快啊。

使用道具

34
jingju11 发表于 2010-5-11 22:06:26 |只看作者 |坛友微信交流群
28# pandasasa
你的程序没有给出c变量

使用道具

35
jingju11 发表于 2010-5-11 23:38:38 |只看作者 |坛友微信交流群
31# nkwilling

if gap = 5 and nobs = 1e7; test samples = 72 and follow by different running order. unit = second


jingju = 16.4 sop = 15.7 bobguy = 9.7

p = 0.46 between jingju and sop
p<0.0001 for bobguy to the other two.


conclusion: Bobguy's code is significantly faster the other two, and the other two not significantly distinct (p = 0.46)

使用道具

36
jingju11 发表于 2010-5-12 03:29:35 |只看作者 |坛友微信交流群
其实效率很可能是一个变化的函数。本人非常认真的在自己的电脑(联入network)运行不同的程序,差不多五六个小时。time Window 从5 变到500.行数是10,000,000. 结果报告如图所示。
我的认识是效率的benchmark很难确定,受制于诸多的因素。
另外bobguy的程序略有误差。也可能是我和sop错了。不过当不影响测试‘效率’。其他的程序由于没有算出c值故此暂时略过。hash太复杂,也略过。重申,此结果只反映在鄙人的电脑上的今天下午的运行情况。如果有差异,不负责。
测时的程序类似于


  1. %let start = %sysfunc(datetime());

  2.   ***code***

  3. %let end = %sysfunc(datetime());
  4. %let  time = %sysevalf(&end-&start);
复制代码

有人建议用stimer。本人不理解其真正含义而舍弃。

comparison.doc

70.5 KB

使用道具

37
yatming 发表于 2010-5-12 15:03:19 |只看作者 |坛友微信交流群
个人认为bobguy的程序虽然测试最快,确实数据全量进memory是极端了,但是此例没比较性,楼主数据量海量,memory存全量不可能实现。

使用道具

38
洛神赋 发表于 2010-10-14 16:23:28 |只看作者 |坛友微信交流群
mark!~~~~~~~~~~`
仿佛兮若轻云之蔽月,飘飘兮若流风之回雪

使用道具

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

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

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

GMT+8, 2024-6-18 02:42