I ran wbrk2.rb:
# encoding: UTF-8
require 'thailang4r/word_breaker'
word_breaker = ThaiLang::WordBreaker.new
line = 'แต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้วแต่ผมเคยมีปัญหาตอนจ่ายตังหลายปีแล้ว'
t1 = Time.now
for i in 1..10000
puts word_breaker.break_into_words(line).join("|")
end
t2 = Time.now
puts t2-t1
in cRuby, jRUby, TruffleRuby by this script:
#!/bin/bash
IMPLS=("cruby1" "jruby1" "truffle1")
for i in $(seq 1 10); do
for j in ${IMPLS[*]}; do
echo $i,$j,$(docker run --rm -it -v $(pwd):/work -w /work $j ruby wbrk2.rb | tail -n1)
done
done
Dockerfile.cruby:
FROM ruby:3.1
RUN gem install thailang4r
Dockerfile.jruby:
FROM jruby
RUN gem install thailang4r
Dockerfile.truffle:
FROM ghcr.io/graalvm/truffleruby:22
RUN gem install thailang4r
cRuby | jRuby | TruffleRuby | |
---|---|---|---|
1 | 16.42368491 | 54.169815 | 11.385601 |
2 | 16.58381034 | 51.668375 | 11.99536 |
3 | 16.47655229 | 53.584401 | 12.088978 |
4 | 17.52281777 | 54.222869 | 10.893925 |
5 | 16.92775603 | 54.912019 | 12.24505 |
6 | 16.89063941 | 52.43011 | 11.413859 |
7 | 17.12419062 | 57.041267 | 11.395317 |
8 | 17.51911099 | 51.571193 | 11.551416 |
9 | 16.97416603 | 51.805853 | 11.578309 |
10 | 16.79307381 | 51.006189 | 12.517783 |
mean | 16.92358022 | 53.2412091 | 11.7065598 |
Speed | 1X | 0.32X | 1.45X |
wbrk2 on TruffleRuby ran at 1.45X speed of cRuby. wbrk2 on jRuby ran at 0.32X speed of cRuby.
Top comments (0)