Hi David,
Yes, the 21 seconds includes the interpreter startup time. I have done a
simple test to see how long it takes:
$ time racket -e '(displayln "Hello, world")'
Hello, world
real 0m0.479s
user 0m0.449s
sys 0m0.030s
I have also put my code inside a main function and profiled it:
Profiling results
-----------------
Total cpu time observed: 20910ms (out of 20970ms)
Number of samples taken: 382 (once every 55ms)
(Hiding functions with self<1.0% and local<2.0%: 1 of 12 hidden)
==============================================================
Caller
Idx Total Self Name+src Local%
ms(pct) ms(pct) Callee
==============================================================
[1] 20910(100.0%) 0(0.0%) [running body] ...word-occurences-profile.
rkt":##f
profile-thunk [2] 100.0%
--------------------------------------------------------------
[running body] [1] 100.0%
[2] 20910(100.0%) 0(0.0%) profile-thunk ...ket/pkgs/profile-lib/main.
rkt:9:0
run [3] 100.0%
--------------------------------------------------------------
profile-thunk [2] 100.0%
[3] 20910(100.0%) 0(0.0%) run ...share/racket/pkgs/profile-
lib/main.rkt:39:2
main [4] 100.0%
--------------------------------------------------------------
run [3] 100.0%
[4] 20910(100.0%) 50(0.2%) main ...cket/count-word-occurences-
profile.rkt:5:0
read-from-stdin-it [5] 98.5%
??? [6] 0.2%
--------------------------------------------------------------
main [4] 100.0%
[5] 20606(98.5%) 11796(56.4%) read-from-stdin-it
...-occurences-profile.rkt:19:6
internal-split [7] 42.8%
--------------------------------------------------------------
main [4] 100.0%
[6] 51(0.2%) 0(0.0%) ??? ...cket/collects/racket/
private/sort.rkt:369:3
generic-sort/key [8] 100.0%
--------------------------------------------------------------
read-from-stdin-it [5]100.0%
[7] 8810(42.1%) 3528(16.9%) internal-split
...collects/racket/string.rkt:117:0
regexp-split [9] 59.9%
--------------------------------------------------------------
??? [6] 100.0%
[8] 51(0.2%) 0(0.0%) generic-sort/key
.../racket/private/sort.rkt:156:2
copying-mergesort [10]100.0%
--------------------------------------------------------------
internal-split [7] 100.0%
[9] 5282(25.3%) 2810(13.4%) regexp-split ...ts/racket/private/string.
rkt:338:2
loop [11] 46.8%
--------------------------------------------------------------
generic-sort/key [8] 10.0%
copying-mergesort [10] 90.0%
[10] 51(0.2%) 51(0.2%) copying-mergesort
...racket/private/sort.rkt:129:8
copying-mergesort [10] 90.0%
--------------------------------------------------------------
regexp-split [9] 100.0%
[11] 2471(11.8%) 2471(11.8%) loop ...t/collects/racket/private/
string.rkt:169:7
--------------------------------------------------------------
Kind regards,
Pawel
On Thursday, March 18, 2021 at 2:09:35 PM UTC [email protected] wrote:
> Hi Pawel,
>
> I'll take a look at the code later, but did that 21 seconds include
> startup time for the interpreter?
>
> On Thu, Mar 18, 2021, 9:24 AM Pawel Mosakowski <[email protected]>
> wrote:
>
>> Hello,
>>
>> I am a Racket beginner and I have come across this article:
>>
>> <http://goog_416028503>
>> https://benhoyt.com/writings/count-words/
>>
>> This is my attempt at solving the challenge:
>>
>> <http://goog_416028502>
>> https://pastebin.com/kL16w5Hc
>>
>> However when I have benchmarked it, it takes ~21 seconds to run compared
>> to the Python and Ruby versions which take around 3-4 seconds.
>>
>> I understand that both Ruby and Python probably have the string
>> operations and hash tables implemented in optimized C but is there anything
>> I can do to improve performance of my program?
>>
>> Many thanks for all help and suggestions.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/racket-users/118c1340-66d1-421d-92a4-6b66c56cb88fn%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/racket-users/118c1340-66d1-421d-92a4-6b66c56cb88fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/racket-users/09c58a34-bd2d-49e7-bfbd-d3253c1e6dd1n%40googlegroups.com.