Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: runs slowly?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122294] Re: runs slowly?
  • From: Michael Stern <nycstern at gmail.com>
  • Date: Mon, 24 Oct 2011 05:12:38 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201110231025.GAA10587@smc.vnet.net>

All the date functions in Mathematica are extremely slow. In benchmarks I sent to Wolfram a few months ago (and some of which can be seen at
http://www.wheels.org/monkeywrench/?p=453), the date functions in Mathematica ran about 1/82 the speed of the same functions in Visual Basic for Applications. If you know the format of the dates you are converting, you may be able to roll your own date functions much faster than Wolfram's. I have encouraged them to improve this code, but they will probably pay closer attention if others complain as well.

Michael


Sent from my iPad

On Oct 23, 2011, at 6:25 AM, Robert McHugh <bob_mchugh_2000 at yahoo.com> wrote:

> The following code takes over a minute to run on my machine.  Is this expected behavior?
>
> t = {"14-May-10 09:58:05", {"Day", "-", "MonthNameShort", "-", "YearShort", " ", "Hour", ":", "Minute", ":", "Second"}};
> tList = Table[t, {i, 100000}];
> a = Timing[AbsoluteTime[#] & /@ tList ;]
>
> For reference, an operation like the following takes less than a tenth of a second. (Of course this second example needs quite a bit of modification to provide a correct answer, but it does show how fast the program can operate on a large list.)
> t = {14, 5, 10, 9, 58, 05};
> tList = Table[t, {i, 100000}];
> a = Timing[( ((#[[3]] 0 + #[[2]] 30 + #[[1]]24) + #[[4]]) 60 + #[[5]]) 60 + #[[6]] & /@ tList;]
>
> Some background: am analyzing some historical data (about 500 000 records, one data point a minute for about a year) and am making a few utilities to retrieve the data for any given time interval.   My original plan was to change the time stamp to absolute time and then use a select statement.  This step in the above example, changing the time stamps to absolute time, is the rate limiting step in the code (everything else runs in about 5 seconds).
>
> Was wondering if someone could explain why AbsoluteTime[] is relatively slow operation and perhaps some faster operations for date and time comparisons.
>
> Thanks
>



  • Prev by Date: Re: A basic question about RecurrenceTable - warning messages
  • Next by Date: Re: Ticks without labels
  • Previous by thread: AbsoluteTime[] runs slowly?
  • Next by thread: Re: runs slowly?