READS as a speed improvement or simply style? [message #52445] |
Thu, 08 February 2007 13:19  |
Brian Larsen
Messages: 270 Registered: June 2006
|
Senior Member |
|
|
This should be simple for folks out there. Is reads fast as I suspect
it is as compared to other ways?
; start with a date yyyydddhhmmss format
euv_date2 = '2000111223344'
; I want to split it into an array
; this can be done this way:
year = strmid(trim(euv_date2), 0, 4)
doy = strmid(trim(euv_date2), 4, 3)
hour = strmid(trim(euv_date2), 7, 2)
minute = strmid(trim(euv_date2), 9, 2)
second = strmid(trim(euv_date2), 11, 2)
time_arr = [year, doy, hour, minute, second]
; or this way
time_arr = strarr(5)
reads, euv_date2, time_arr, format='(a4,a3,a2,a2,a2)'
I tested he speed with this code:
timer, 0, /start
FOR i=0l, 1e6 DO BEGIN
euv_date2 = '2000111223344'
; I want to split it into an array
; this can be done this way:
year = strmid(trim(euv_date2), 0, 4)
doy = strmid(trim(euv_date2), 4, 3)
hour = strmid(trim(euv_date2), 7, 2)
minute = strmid(trim(euv_date2), 9, 2)
second = strmid(trim(euv_date2), 11, 2)
time_arr = [year, doy, hour, minute, second]
ENDFOR
timer, 0, /stop, /print
timer, 1, /start
FOR i=0l, 1e6 DO BEGIN
time_arr = strarr(5)
reads, euv_date2, time_arr, format='(a4,a3,a2,a2,a2)'
ENDFOR
timer, 1, /stop, /print
END
to this result:
IDL> .run test
% Compiled module: $MAIN$.
Timer 0 started: 2007 Feb 8 14:16:59 Thu
Timer 0 stopped: 2007 Feb 8 14:17:29 Thu
Elapsed time: 00:00:29 (29.851995 sec)
Timer 0 started: 2007 Feb 8 14:17:29 Thu
Timer 0 stopped: 2007 Feb 8 14:17:37 Thu
Elapsed time: 00:00:08 (8.1684880 sec)
Which is pretty amazing!!!
anyone have any evidence real or experiential on how much faster reads
is for other examples?
Brian
------------------------------------------------------------ ---------
Brian A. Larsen
Dept. of Physics
Space Science and Engineering Lab (SSEL)
Montana State University - Bozeman
Bozeman, MT 59717
|
|
|
Re: READS as a speed improvement or simply style? [message #52588 is a reply to message #52445] |
Thu, 08 February 2007 17:55  |
Brian Larsen
Messages: 270 Registered: June 2006
|
Senior Member |
|
|
Actually these is a solarsoft routine trim() that does a bit more than
strtrim()
Brian
------------------------------------------------------------ ---------
Brian A. Larsen
Dept. of Physics
Space Science and Engineering Lab (SSEL)
Montana State University - Bozeman
Bozeman, MT 59717
On Feb 8, 5:49 pm, Me <D...@sk.me> wrote:
> Brian Larsen wrote:
>> Bob,
>
>> nice noticing. I remove the trim function (removes leading and
>> trailing spaces)
>
> it is not trim() but strtrim()
>
> Jean
>
>
>
>> and I get the same speed.
>> IDL> .run test
>> Elapsed time: 00:00:08 (8.5097780 sec)
>> Elapsed time: 00:00:08 (8.4192050 sec)
>
>> So the slow culprit is trim.
>
>> Brian
>
>> ------------------------------------------------------------ ---------
>> Brian A. Larsen
>> Dept. of Physics
>> Space Science and Engineering Lab (SSEL)
>> Montana State University - Bozeman
>> Bozeman, MT 59717
>
>> On Feb 8, 2:29 pm, "R.G. Stockwell" <n...@email.please> wrote:
>>> "Brian Larsen" <balar...@gmail.com> wrote in message
>
>>> news:1170969593.224830.24540@j27g2000cwj.googlegroups.com...
>>> ...
>>> Elapsed time: 00:00:29 (29.851995 sec)
>>> ...
>
>>>> Elapsed time: 00:00:08 (8.1684880 sec)
>>>> Which is pretty amazing!!!
>>> It may be due in a fair bit to the fact that method one
>>> calls 10 functions each iteration, and method 2 calls 1.
>>> There is some overhead involved in each function call.
>
>>> Personally I don't see that much of a difference
>>> I get the opposite result: (removing the unkown trim function)
>>> Elapsed time: 5.2030001 Seconds.
>
>>> Elapsed time: 7.0630000 Seconds.
>
>>> Cheers,
>>> bob
|
|
|