LINUX.ORG.RU

История изменений

Исправление 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 отработал с такой же скоростью, только какую-то чушь выдал.