Я сравниваю производительность чтения, сколько строк содержит файл.
Сначала я использовал инструмент командной строки wc:
$ time wc -l bigFile.csv
1673820 bigFile.csv
real 0m0.157s
user 0m0.124s
sys 0m0.062s
, а затем в чистом Pharo Core Smalltalk последней версии 1.3
| file lineCount |
Smalltalk garbageCollect.
( Duration milliSeconds: [ file := FileStream readOnlyFileNamed: 'bigFile.csv'.
lineCount := 0.
[ file atEnd ] whileFalse: [
file nextLine.
lineCount := lineCount + 1 ].
file close.
lineCount. ] timeToRun ) asSeconds.
15
Как я могу ускорить код Smalltalk, чтобы он был быстрее или ближе, чем производительность wc?