Re:Beating C with 70 lines of Go
by ajeetdsouza on Wednesday November 20, 2019 @02:59PM
(#21587841)
Author here. Why do you feel it is code golf? My primary focus when writing it was readability - I'm sure I could do it in much less than 70 lines if I had to. If you have any suggestions for improving the readability of my implementation, do let me know!
[ Parent
| on HN ]
The version you are comparing against is ancient and assumes a low-memory footprint. It only uses something like 10KB of data. It also has a ton more features -- like command line parsing, the ability to read from a file on the command line or stdin, and locale-specific recognition of whitespace.
It's really not solving the same problem.
Re:Beating C with 70 lines of Go
by ajeetdsouza on Wednesday November 20, 2019 @03:53PM
(#21588387)
Argument parsing is hardly the bottleneck when you're scanning 1 GB of data. The reason I didn't implement the rest of the features was to keep the implementation light and readable, and I don't think a fully compliant wc implemented in Go with these patterns would be significantly slower.
As for having a low-memory footprint, 2 of the 4 implementations I mentioned (one single core, one multi-core) consume less memory than wc, and still run much faster.
How much memory does your program uses VS the C program? Did you profile that?
Re:Beating C with 70 lines of Go
by strange_aeons on Wednesday November 20, 2019 @03:58PM
(#21588440)
Yes, it's the last column in all the result tables.