История изменений
Исправление qnikst, (текущая версия) :
import qualified Data.Vector.Unboxed as U
import Control.Applicative
import System.Random.Mersenne
main = do
gen <- newMTGen Nothing
rs <- randoms gen
let vec = U.fromList (take rs) :: U.Vector Int
print $ U.sum $ U.map (^2) $ vec
сборка:
ghc -O2 2.hs -ddump-simpl -dsuppress-uniques -dsuppress-module-prefixes -fforce-recomp -ddump-to-file
все опции проме -O2 нужны чтобы поглядеть в simpl версию создаваемую при генерации..
результаты:
qnikst@thinkpad ~/tmp/lor/sumk $ \time ./2
7419632219866927510
0.30user 0.00system 0:00.30elapsed 100%CPU (0avgtext+0avgdata 8608maxresident)k
0inputs+0outputs (0major+594minor)pagefaults 0swaps
\time sbcl --load bench.lisp
fatal error encountered in SBCL pid 32605(tid 140737353918208):
can't find core file at /usr/local/lib/sbcl//sbcl.core
Command exited with non-zero status 1
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 4224maxresident)k
0inputs+0outputs (0major+575minor)pagefaults 0swaps
lisp отработал быстрее, только какую-то чушь выдал.
P.S. Опс константа не та, ща поменяю.. P.P.S. обновил
Исправление qnikst, :
import qualified Data.Vector.Unboxed as U
import Control.Applicative
import System.Random.Mersenne
main = do
gen <- newMTGen Nothing
rs <- randoms gen
let vec = U.fromList (take rs) :: U.Vector Int
print $ U.sum $ U.map (^2) $ vec
сборка:
ghc -O2 2.hs -ddump-simpl -dsuppress-uniques -dsuppress-module-prefixes -fforce-recomp -ddump-to-file
все опции проме -O2 нужны чтобы поглядеть в simpl версию создаваемую при генерации..
результаты:
qnikst@thinkpad ~/tmp/lor/sumk $ \time ./2
7419632219866927510
0.30user 0.00system 0:00.30elapsed 100%CPU (0avgtext+0avgdata 8608maxresident)k
0inputs+0outputs (0major+594minor)pagefaults 0swaps
\time sbcl --load bench.lisp
fatal error encountered in SBCL pid 32605(tid 140737353918208):
can't find core file at /usr/local/lib/sbcl//sbcl.core
Command exited with non-zero status 1
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 4224maxresident)k
0inputs+0outputs (0major+575minor)pagefaults 0swaps
lisp отработал быстрее, только какую-то чушь выдал.
Опс константа не та, ща поменяю..
Исправление qnikst, :
import qualified Data.Vector.Unboxed as U
import Control.Applicative
import System.Random.Mersenne
main = do
gen <- newMTGen Nothing
rs <- randoms gen
let vec = U.fromList (take 10 rs) :: U.Vector Int
print $ U.sum $ U.map (^2) $ vec
сборка:
ghc -O2 2.hs -ddump-simpl -dsuppress-uniques -dsuppress-module-prefixes -fforce-recomp -ddump-to-file
все опции проме -O2 нужны чтобы поглядеть в simpl версию создаваемую при генерации..
результаты:
qnikst@thinkpad ~/tmp/lor/sumk $ ./2
6231835645235066096
\time sbcl --load bench.lisp
fatal error encountered in SBCL pid 32605(tid 140737353918208):
can't find core file at /usr/local/lib/sbcl//sbcl.core
Command exited with non-zero status 1
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 4224maxresident)k
0inputs+0outputs (0major+575minor)pagefaults 0swaps
lisp отработал с такой же скоростью, только какую-то чушь выдал.
Опс константа не та, ща поменяю..
Исходная версия qnikst, :
import qualified Data.Vector.Unboxed as U
import Control.Applicative
import System.Random.Mersenne
main = do
gen <- newMTGen Nothing
rs <- randoms gen
let vec = U.fromList (take 10 rs) :: U.Vector Int
print $ U.sum $ U.map (^2) $ vec
сборка:
ghc -O2 2.hs -ddump-simpl -dsuppress-uniques -dsuppress-module-prefixes -fforce-recomp -ddump-to-file
все опции проме -O2 нужны чтобы поглядеть в simpl версию создаваемую при генерации..
результаты:
qnikst@thinkpad ~/tmp/lor/sumk $ ./2
6231835645235066096
\time sbcl --load bench.lisp
fatal error encountered in SBCL pid 32605(tid 140737353918208):
can't find core file at /usr/local/lib/sbcl//sbcl.core
Command exited with non-zero status 1
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 4224maxresident)k
0inputs+0outputs (0major+575minor)pagefaults 0swaps
lisp отработал с такой же скоростью, только какую-то чушь выдал.