Сравнение скорости подсчета новой строки между wc и Smalltalk

Я сравниваю производительность чтения, сколько строк содержит файл.

Сначала я использовал инструмент командной строки 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?

5
задан Juan Aguerre 7 November 2011 в 18:06
поделиться