[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Jitter v0.9.248] Jitter now has sample-based profiling as well; updated

From: Luca Saiu
Subject: [Jitter v0.9.248] Jitter now has sample-based profiling as well; updated poke submodule reference
Date: Sat, 26 Dec 2020 22:00:53 +0100
User-agent: Gnus (Gnus v5.13), GNU Emacs 27.0.50, x86_64-pc-linux-gnu

The API has changed in an incompatible way, but I would say for the
better.  Look at the examples.

There are now two separate CPP macros that can be defined independently
to enable count-profiling, sample-profiling, or both:
The macro I defined a few days ago JITTER_INSTRUMENT_FOR_PROFILING, is
no longer recognised.

I updated all the examples in Jitter.  José, if he is interested in
profiling from more than one VM state, should use the "merge" function.

Jitter submodule updated in poke (make sure to touch
libpoke/pvm.jitter).  Test suite passed.  New tag v0.9.248 .

p=bin/jitterlisp--boehm--no-threading; make -j CPPFLAGS="$Q" && make -j $p 
CPPFLAGS="$Q" && rj ./scripts/emulator $p --time=verbose 
JitterLisp (from Jitter version 0.9.248)
Copyright (C) 2017-2020 Luca Saiu

JitterLisp comes with ABSOLUTELY NO WARRANTY; type (no-warranty)
for details.  This program is free software, and you are welcome
to redistribute it under the GNU General Public License, version
3 or later; type (copying) to display the license text.
* VM dispatch:               no-threading
* VM profiling:              count+sample instrumentation(slow!)
* Compiled primitive safety: run-time type and overflow checking
* Heap memory handling:      Boehm garbage collector
* Line editing:              GNU Readline
* Output styling:            GNU Libtextstyle

jitterlisp> (compile! cons reverse!-iterative reverse! length-iterative length 
prime? primes-naif) (reset-profile!) (length (primes-naif 25000)) 
[(compile! cons reverse!-iterative reverse! length-iterative length prime? 
primes-naif) evaluated in 0.001s]
[(reset-profile!) evaluated in 0.000s]
[(length (primes-naif 25000)) evaluated in 0.738s]
primitive-remainder/fR          32534309   12.295ns  54.8%
push-register/%rR              195380716    1.075ns  28.8%
branch-if-false/fR              65143616    1.075ns   9.6%
primitive-lessp/fR              32587072  306.870ps   1.4%
branch-if-true/fR               32584308  306.896ps   1.4%
pop-to-register/%rR             32564833  307.080ps   1.4%
primitive-one-plus/fR           32562071  307.106ps   1.4%
primitive-zerop/fR              32534309  307.368ps   1.4%
branch/fR                          72237 
literal-to-register/nR/%rR         72237 
push-literal/nR                    47239 
primitive-not                      24998 
copy-to-register/%rR                5528 
nip                                 5528 
branch-if-not-null/fR               5527 
register-to-register/%rR/%rR        5525 
copy-from-register/%rR              5524 
primitive-cdr/fR                    5524 
drop                                2764 
gc-if-needed/fR                     2762 
heap-allocate/n16                   2762 
primitive-cons-special              2762 
primitive-set-cdrb-special/fR       2762 
procedure-prolog                       4 
call-from-c/retR                       2 
exitvm                                 2 
return                                 2 
tail-call-compiled/n1                  2 
copy-from-literal/nR                   1 
[(print-profile-specialized) evaluated in 0.002s]

Luca Saiu
* My personal web site:  http://ageinghacker.net
* GNU epsilon:           http://www.gnu.org/software/epsilon
* Jitter:                http://ageinghacker.net/projects/jitter

I support everyone's freedom of mocking any opinion or belief, no
matter how deeply held, with open disrespect and the same unrelented
enthusiasm of a toddler who has just learned the word "poo".

Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]